public override void implement(VoteOption option) { base.implement(option); society.lastNobleCrisis = society.map.turn; society.crisisNobles = false; foreach (Evidence ev in foundEvidence) { society.handledEvidence.Add(ev); } if (option.index == WITCH_HUNT) { society.crisisWitchHunt = true; } if (option.index == AGENT_TO_INQUISITOR) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.inquisitor); World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Inquisitor, by the nobles of " + option.unit.society.getName() + " in response to external threats. Inquisitors are experts at combatting your finding enthralled, enshadowed, broken or corrupt nobles."); } if (option.index == AGENT_TO_BASIC) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.basic); if (inv.person.isWatched()) { World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Agent, by the nobles of " + option.unit.society.getName() + " in response to external threats. Standard agents are general-purpose units. They can investigate your agents' evidence, and can assist in wars. They can be promoted " + " to specalists by vote."); } } }
public override void implement(VoteOption option) { base.implement(option); society.crisisWarLong = null; society.crisisWarShort = null; society.lastEvidenceResponse = society.map.turn; if (option.index == AGENT_TO_KNIGHT) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.knight); if (inv.person.isWatched()) { World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Knight, by the nobles of " + option.unit.society.getName() + " in response to external threats. Knights are combat specialists, who grant bonuses to nearby military units' damage (both attacking and defending)."); } } if (option.index == AGENT_TO_BASIC) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.basic); if (inv.person.isWatched()) { World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Agent, by the nobles of " + option.unit.society.getName() + " in response to external threats. Standard agents are general-purpose units. They can investigate your agents' evidence, and can assist in wars. They can be promoted " + " to specalists by vote."); } } }
public override void implement(VoteOption option) { base.implement(option); society.crisisPlague = null; society.crisisPlagueLong = null; society.lastEvidenceResponse = society.map.turn; if (option.index == AGENT_TO_MEDIC) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.medic); if (inv.person.isWatched()) { World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Apothecarian, by the nobles of " + option.unit.society.getName() + " in response to external threats. Apothecarians excell in treating plagues, but cannot do anything else."); } } if (option.index == AGENT_TO_BASIC) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.basic); if (inv.person.isWatched()) { World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Agent, by the nobles of " + option.unit.society.getName() + " in response to external threats. Standard agents are general-purpose units. They can investigate your agents' evidence, and can assist in wars. They can be promoted " + " to specalists by vote."); } } if (option.index == QUARANTINE) { foreach (Location loc in society.map.locations) { if (loc.soc == society) { bool hasDisease = false; foreach (Property pr in loc.properties) { if (pr.proto.isDisease) { hasDisease = true; break; } } if (hasDisease) { Property.addProperty(loc.map, loc, "Quarantine"); } } } } if (option.index == TREATMENT) { foreach (Location loc in society.map.locations) { if (loc.soc == society) { bool hasDisease = false; foreach (Property pr in loc.properties) { if (pr.proto.isDisease) { hasDisease = true; break; } } if (hasDisease) { Property.addProperty(loc.map, loc, "Medical Aid"); } } } } }
public static void takeCommand(Map map, string command) { World.log("cheat command registered: " + command); //try { if (command == "power") { map.overmind.power = 1024; map.overmind.availableEnthrallments = 128; } if (command == "testsave") { map.world.save("testSave.sv"); //map.world.prefabStore.popAutosave(); } if (command == "testload") { //map.world.load("testSave.sv"); } if (command == "silence") { World.self.displayMessages = !World.self.displayMessages; } if (command == "shadow") { GraphicalMap.selectedHex.location.person().shadow = 1; } if (command == "music") { map.world.ui.uiMusic.playTest(); } if (command == "aware") { GraphicalMap.selectedHex.location.person().awareness = 1; } if (command == "testproperty") { Property.addProperty(map, GraphicalMap.selectedHex.location, "Military Aid"); World.staticMap.world.ui.checkData(); } if (command == "playback") { World.staticMap.world.ui.addBlocker(World.staticMap.world.prefabStore.getPlayback(World.staticMap.world, World.staticMap).gameObject); } if (command == "uivoting") { World.staticMap.world.ui.uiVoting.populate((Society)GraphicalMap.selectedHex.location.soc, GraphicalMap.selectedHex.location.person()); World.staticMap.world.ui.setToVoting(); } if (command == "100") { World.staticMap.world.b100Turns(); } if (command == "enthrall") { if (GraphicalMap.selectedHex.location.person() == null) { int c = 0; Person choice = null; foreach (Person p in ((Society)GraphicalMap.selectedHex.location.soc).people) { if (p.getLocation() == GraphicalMap.selectedHex.location) { c += 1; if (Eleven.random.Next(c) == 0) { choice = p; } } } choice.state = Person.personState.enthralled; map.overmind.enthralled = choice; } else { map.overmind.enthralled = GraphicalMap.selectedHex.location.person(); map.overmind.enthralled.state = Person.personState.enthralled; } } if (command == "love") { foreach (Person p in map.overmind.enthralled.society.people) { p.getRelation(map.overmind.enthralled).addLiking(100, "Cheat love", map.turn); } } if (command == "hate") { foreach (Person p in map.overmind.enthralled.society.people) { p.getRelation(map.overmind.enthralled).addLiking(-100, "Cheat hate", map.turn); } } if (command == "resetSteamAchievements") { SteamManager.reset_all_achievements(); World.staticMap.world.prefabStore.popMsg("All steam achievements reset"); } if (command == "thetruth") { foreach (Unit u in map.units) { if (u is Unit_Seeker seeker) { seeker.knowsTruth = true; } } } if (command == "insanity") { GraphicalMap.selectedHex.location.person().goInsane(); } if (command == "ruin") { GraphicalMap.selectedHex.location.settlement.fallIntoRuin(); } if (command == "redDeath") { Property.addProperty(GraphicalMap.map, GraphicalMap.selectedHex.location, "Red Death"); } if (command == "rotting" || command == "rotting sickness") { Property.addProperty(GraphicalMap.map, GraphicalMap.selectedHex.location, "Rotting Sickness"); } if (command == "fogSource") { Property.addProperty(GraphicalMap.map, GraphicalMap.selectedHex.location, "Well of Fog"); } if (command == "hot") { for (int i = 0; i < map.tempMap.Length; i++) { for (int j = 0; j < map.tempMap[0].Length; j++) { map.tempMap[i][j] += 0.1f; if (map.tempMap[i][j] > 1) { map.tempMap[i][j] = 1; } } } map.assignTerrainFromClimate(); map.world.ui.checkData(); } if (command == "cold") { //for (int i = 0; i < map.tempMap.Length; i++) //{ // for (int j = 0; j < map.tempMap[0].Length; j++) // { // map.tempMap[i][j] -= 0.1f; // if (map.tempMap[i][j] < 0) { map.tempMap[i][j] = 0; } // } //} foreach (Hex[] row in map.grid) { foreach (Hex h in row) { h.transientTempDelta -= 0.1f; } } map.assignTerrainFromClimate(); map.world.ui.checkData(); } if (command == "globalcooling") { World.cheat_globalCooling = !World.cheat_globalCooling; } if (command == "min sanity") { GraphicalMap.selectedHex.location.person().sanity = 0.01; } if (command == "die") { GraphicalMap.selectedHex.location.person().die("Killed by console", true); } if (command == "inquisitor") { Unit_Investigator inv = (Unit_Investigator)GraphicalMap.selectedSelectable; inv.changeState(Unit_Investigator.unitState.inquisitor); } if (command == "civilWar") { List <Person> rebels = new List <Person>(); Society soc = (Society)GraphicalMap.selectedHex.location.soc; int c = 0; foreach (Person p in soc.people) { if (p.title_land == null) { continue; } if (p.getLocation().province != soc.getCapital().province) { rebels.Add(p); } } soc.triggerCivilWar(rebels); } if (command == "evidence") { GraphicalMap.selectedHex.location.person().evidence = 1; } if (command == "disrupt") { GraphicalMap.selectedHex.location.person().action = new Act_Disrupted(); } if (command == "10 evidence") { GraphicalMap.selectedHex.location.person().evidence += 0.1; if (GraphicalMap.selectedHex.location.person().evidence > 1) { GraphicalMap.selectedHex.location.person().evidence = 1; } } if (command == "refresh") { World.staticMap.overmind.hasTakenAction = false; } if (command == "nextAge") { World.staticMap.overmind.progressToNextAge(); } if (command == "unit") { Unit u = new Unit_Investigator(GraphicalMap.selectedHex.location, (Society)GraphicalMap.selectedHex.location.soc); map.units.Add(u); GraphicalMap.selectedHex.location.units.Add(u); } if (command == "victory") { World.staticMap.overmind.victory(); } if (command == "defeat") { World.staticMap.overmind.defeat(); } if (command == "course") { World.staticMap.world.prefabStore.popEndgameCyclic(); } if (command == "worm") { SG_WormHive add = new SG_WormHive(map, GraphicalMap.selectedHex.location); map.socialGroups.Add(add); } if (command == "placeevidence") { GraphicalMap.selectedHex.location.evidence.Add(new Evidence(map.turn)); World.log("Placing evidence"); } if (command == "vote") { Society soc = map.overmind.enthralled.society; if (soc.voteSession != null) { soc.voteSession.assignVoters(); World.log("Attempting to build blocker"); map.world.ui.addBlocker(map.world.prefabStore.getScrollSet(soc.voteSession, soc.voteSession.issue.options).gameObject); } } if (command == "infiltrate") { GraphicalMap.selectedHex.location.settlement.infiltration = 1; World.log("Infiltrate"); } if (command == "infiltratehalf") { GraphicalMap.selectedHex.location.settlement.infiltration = 0.5; World.log("Infiltrate half"); } map.world.ui.checkData(); } //catch(Exception e) //{ // World.log(e.Message); //} }
public override void implement(VoteOption option) { base.implement(option); society.lastEvidenceResponse = society.map.turn; foreach (Evidence ev in foundEvidence) { society.handledEvidence.Add(ev); } if (option.index == DEFEND_PROVINCE) { World.log(society.getName() + " implements crisis legislation, increasing security to " + society.map.provinces[option.province].name); foreach (Location loc in society.map.locations) { if (loc.province.index == option.province && loc.soc == society) { Property.addProperty(society.map, loc, "Major Security Boost"); } } society.map.addMessage(society.getName() + " raises " + society.map.provinces[option.province].name + " security level", MsgEvent.LEVEL_ORANGE, false, society.map.provinces[option.province].coreHex); } if (option.index == NATIONWIDE_SECURITY) { World.log(society.getName() + " implements crisis legislation, increasing security nationwide"); foreach (Location loc in society.map.locations) { if (loc.province.index == option.province && loc.soc == society) { Property.addProperty(society.map, loc, "Minor Security Boost"); } } society.map.addMessage(society.getName() + " raises its security level nationwide", MsgEvent.LEVEL_ORANGE, false, society.getCapitalHex()); } if (option.index == NO_RESPONSE) { World.log(society.getName() + " implements crisis legislation, does nothing"); } if (option.index == EXPELL_ALL_FOREIGN_AGENTS) { bool agentsExpelled = false; foreach (Unit u in society.map.units) { if (u.society != society && society.enemies.Contains(u) == false) { society.enemies.Add(u); if (u.isEnthralled()) { agentsExpelled = true; } } } if (agentsExpelled) { society.map.world.prefabStore.popMsg(society.getName() + " expells all foreign agents, in response to evidence discovered." + " All your existing agents will now be attacked on sight if they enter or are in its lands. New agents will still be acceptable."); } World.log(society.getName() + " implements crisis legislation, expelling all foreign agents"); society.map.addMessage(society.getName() + " outlaws all foreign agents", MsgEvent.LEVEL_RED, false, society.getCapitalHex()); } if (option.index == INVESTIGATOR_HOSTILITY) { foreach (Evidence ev in foundEvidence) { if (ev.discoveredBy.society == society && ev.discoveredBy != null && ev.pointsTo != null && (ev.discoveredBy.hostileTo(ev.pointsTo) == false)) { ev.discoveredBy.hostility.Add(ev.pointsTo); society.map.addMessage(ev.discoveredBy.getName() + " permitted to attack " + ev.pointsTo.getName(), MsgEvent.LEVEL_RED, !ev.pointsTo.isEnthralled()); if (ev.pointsTo.isEnthralled()) { society.map.world.prefabStore.popMsg("The nobles of " + society.getName() + " have given permission their agent, " + ev.discoveredBy.getName() + " to attack " + ev.pointsTo.getName() + " on sight, if they encounter them during investigations."); } } } } if (option.index == LOCKDOWN_PROVINCE) { World.log(society.getName() + " implements crisis legislation, fully locking down " + society.map.provinces[option.province].name); Unit enthralledVic = null; foreach (Location loc in society.map.locations) { if (loc.province.index == option.province && loc.soc == society) { Property.addProperty(society.map, loc, "Lockdown"); foreach (Unit u in loc.units) { if (u.isEnthralled()) { enthralledVic = u; } } } } society.map.addMessage(society.getName() + " locks down " + society.map.provinces[option.province].name, MsgEvent.LEVEL_ORANGE, false, society.map.provinces[option.province].coreHex); if (enthralledVic != null) { society.map.world.prefabStore.popMsg(society.getName() + " has imposed a complete lockdown in the province " + society.map.provinces[option.province].name + " which impacts your agent " + enthralledVic.getName() + "'s ability to operate until the lockdown is over."); } } if (option.index == AGENT_TO_INVESTIGATOR) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.investigator); World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Investigator, by the nobles of " + option.unit.society.getName() + " in response to external threats. Investigators are experts at combatting your agents. They can recognise evidence and spot your agents if they are in the same location."); } if (option.index == AGENT_TO_BASIC) { Unit_Investigator inv = (Unit_Investigator)option.unit; inv.changeState(Unit_Investigator.unitState.basic); if (inv.person.isWatched()) { World.self.prefabStore.popMsgAgent(option.unit, option.unit, option.unit.getName() + " has been assigned the role of Agent, by the nobles of " + option.unit.society.getName() + " in response to external threats. Standard agents are general-purpose units. They can investigate your agents' evidence, and can assist in wars. They can be promoted " + " to specalists by vote."); } } }