public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendBase lordToil_DefendBase = (LordToil_DefendBase)(stateGraph.StartingToil = new LordToil_DefendBase(baseCenter)); LordToil_DefendBase lordToil_DefendBase2 = new LordToil_DefendBase(baseCenter); stateGraph.AddToil(lordToil_DefendBase2); LordToil_AssaultColony lordToil_AssaultColony = new LordToil_AssaultColony(attackDownedIfStarving: true); lordToil_AssaultColony.useAvoidGrid = true; stateGraph.AddToil(lordToil_AssaultColony); Transition transition = new Transition(lordToil_DefendBase, lordToil_DefendBase2); transition.AddSource(lordToil_AssaultColony); transition.AddTrigger(new Trigger_BecameNonHostileToPlayer()); stateGraph.AddTransition(transition); Transition transition2 = new Transition(lordToil_DefendBase2, lordToil_DefendBase); transition2.AddTrigger(new Trigger_BecamePlayerEnemy()); stateGraph.AddTransition(transition2); //Transition transition3 = new Transition(lordToil_DefendBase, lordToil_AssaultColony); //transition3.AddTrigger(new Trigger_FractionPawnsLost(0.2f)); //transition3.AddTrigger(new Trigger_PawnHarmed(0.4f)); //transition3.AddTrigger(new Trigger_ChanceOnTickInteval(2500, 0.03f)); //transition3.AddTrigger(new Trigger_TicksPassed(251999)); //transition3.AddTrigger(new Trigger_UrgentlyHungry()); //transition3.AddTrigger(new Trigger_ChanceOnPlayerHarmNPCBuilding(0.4f)); //transition3.AddPostAction(new TransitionAction_WakeAll()); //string message = "MessageDefendersAttacking".Translate(faction.def.pawnsPlural, faction.Name, Faction.OfPlayer.def.pawnsPlural).CapitalizeFirst(); //transition3.AddPreAction(new TransitionAction_Message(message, MessageTypeDefOf.ThreatBig)); //stateGraph.AddTransition(transition3); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendBase lordToilDefendBase1 = new LordToil_DefendBase(this.baseCenter); stateGraph.StartingToil = lordToilDefendBase1; LordToil_DefendBase lordToilDefendBase2 = new LordToil_DefendBase(this.baseCenter); stateGraph.AddToil(lordToilDefendBase2); LordToil_AssaultColony toilAssaultColony = new LordToil_AssaultColony(true) { useAvoidGrid = true }; stateGraph.AddToil(toilAssaultColony); Transition transition1 = new Transition(lordToilDefendBase1, lordToilDefendBase2); transition1.AddSource(toilAssaultColony); transition1.AddTrigger(new Trigger_BecameNonHostileToPlayer()); stateGraph.AddTransition(transition1); Transition transition3 = new Transition(lordToilDefendBase1, toilAssaultColony); transition3.AddTrigger(new Trigger_FractionPawnsLost(0.2f)); transition3.AddTrigger(new Trigger_PawnHarmed(0.4f)); transition3.AddTrigger(new Trigger_ChanceOnTickInterval(2500, 0.03f)); transition3.AddTrigger(new Trigger_TicksPassed(251999)); transition3.AddTrigger(new Trigger_ChanceOnPlayerHarmNPCBuilding(0.4f)); transition3.AddTrigger(new Trigger_OnClamor(ClamorDefOf.Ability)); transition3.AddPostAction(new TransitionAction_WakeAll()); TaggedString taggedString = "MessageDefendersAttacking".Translate(this.faction.def.pawnsPlural, this.faction.Name, Faction.OfPlayer.def.pawnsPlural).CapitalizeFirst(); transition3.AddPreAction(new TransitionAction_Message(taggedString, MessageTypeDefOf.ThreatBig)); stateGraph.AddTransition(transition3); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendBase lordToil_DefendBase = (LordToil_DefendBase)(stateGraph.StartingToil = new LordToil_DefendBase(baseCenter)); LordToil_DefendBase lordToil_DefendBase2 = new LordToil_DefendBase(baseCenter); stateGraph.AddToil(lordToil_DefendBase2); LordToil_AssaultColony lordToil_AssaultColony = new LordToil_AssaultColony(attackDownedIfStarving: true); lordToil_AssaultColony.useAvoidGrid = true; stateGraph.AddToil(lordToil_AssaultColony); Transition transition = new Transition(lordToil_DefendBase, lordToil_DefendBase2); transition.AddSource(lordToil_AssaultColony); transition.AddTrigger(new Trigger_BecameNonHostileToPlayer()); stateGraph.AddTransition(transition); Transition transition2 = new Transition(lordToil_DefendBase2, lordToil_DefendBase); transition2.AddTrigger(new Trigger_BecamePlayerEnemy()); stateGraph.AddTransition(transition2); return(stateGraph); }