001package com.fs.starfarer.api.characters; 002 003import java.util.List; 004import java.util.Random; 005import java.util.Set; 006 007import com.fs.starfarer.api.campaign.CampaignFleetAPI; 008import com.fs.starfarer.api.campaign.FactionAPI; 009import com.fs.starfarer.api.campaign.PersonImportance; 010import com.fs.starfarer.api.campaign.econ.MarketAPI; 011import com.fs.starfarer.api.campaign.rules.HasMemory; 012import com.fs.starfarer.api.campaign.rules.MemoryAPI; 013import com.fs.starfarer.api.characters.FullName.Gender; 014import com.fs.starfarer.api.loading.ContactTagSpec; 015 016/** 017 * @author Alex Mosolov 018 * 019 * Copyright 2012 Fractal Softworks, LLC 020 */ 021public interface PersonAPI extends HasMemory { 022 023 void setPersonality(String personality); 024 025 MutableCharacterStatsAPI getStats(); 026 027 String getRank(); 028 String getRankArticle(); 029 String getRankId(); 030 void setRankId(String rank); 031 032 String getPost(); 033 String getPostArticle(); 034 void setPostId(String postId); 035 String getPostId(); 036 037 FullName getName(); 038 void setName(FullName name); 039 040 String getPortraitSprite(); 041 void setPortraitSprite(String portraitSprite); 042 043 044 Gender getGender(); 045 boolean isMale(); 046 boolean isFemale(); 047 048 MemoryAPI getMemory(); 049 MemoryAPI getMemoryWithoutUpdate(); 050 051 boolean wantsToContactPlayer(); 052 void incrWantsToContactReasons(); 053 void decrWantsToContactReasons(); 054 055 float getContactWeight(); 056 void setContactWeight(float contactWeight); 057 058 059 FactionAPI getFaction(); 060 void setFaction(String factionId); 061 062 RelationshipAPI getRelToPlayer(); 063 064 String getId(); 065 boolean hasTag(String tag); 066 void addTag(String tag); 067 void removeTag(String tag); 068 Set<String> getTags(); 069 void clearTags(); 070 071 boolean isPlayer(); 072 073 boolean isDefault(); 074 075 PersonalityAPI getPersonalityAPI(); 076 077 String getAICoreId(); 078 void setAICoreId(String aiCoreId); 079 boolean isAICore(); 080 081 String getNameString(); 082 083 void setGender(Gender gender); 084 085 /** 086 * For officers, the fleet they're in. 087 * @return 088 */ 089 CampaignFleetAPI getFleet(); 090 /** 091 * For officers, the fleet they're in. 092 */ 093 void setFleet(CampaignFleetAPI fleet); 094 095 MutableCharacterStatsAPI getFleetCommanderStats(); 096 097 void setId(String id); 098 099 MarketAPI getMarket(); 100 void setMarket(MarketAPI market); 101 102 PersonImportance getImportance(); 103 void setImportance(PersonImportance importance); 104 105 /** 106 * The passed in random is used to set the "voice". These are paired since voice is based on importance. 107 * @param importance 108 * @param random 109 */ 110 void setImportanceAndVoice(PersonImportance importance, Random random); 111 112 String getHisOrHer(); 113 114 String getHeOrShe(); 115 116 List<ContactTagSpec> getSortedContactTags(); 117 118 List<String> getSortedContactTagStrings(); 119 120 String getHimOrHer(); 121 122 String getManOrWoman(); 123 124 String getVoice(); 125 void setVoice(String voice); 126 127 void setStats(MutableCharacterStatsAPI stats); 128 129 130} 131 132