Exemple #1
0
        public bool agentCharacterIsExpendable(Agent agent)
        {
            IEnumerable <Agent>  nearbyAgents      = base.Mission.GetNearbyAgents(agent.GetWorldPosition().AsVec2, 10f);
            BasicCharacterObject affectedCharacter = agent.Character;

            if (affectedCharacter != null)
            {
                if (affectedCharacter.getAttributes().Contains("Expendable"))
                {
                    Helpers.Say(affectedCharacter.GetName() + " died, but is Expendable. Nearby allies lost 0 morale.");
                    float moraleSum = 0f;
                    nearbyAgents.ToList().ForEach(a =>
                    {
                        VampireMoraleAgentComponent moraleComponent = a.GetComponent <VampireMoraleAgentComponent>();
                        if (moraleComponent != null)
                        {
                            moraleSum += moraleComponent.Morale;
                        }
                        else if (a.GetComponent <MoraleAgentComponent>() != null)
                        {
                            moraleSum += a.GetMorale();
                        }
                    }
                                                  );
                    float averageMorale = moraleSum / nearbyAgents.ToList().Count;
                    Helpers.Say("Average morale of nearby allies: " + averageMorale);
                    return(true);
                }
            }
            return(false);
        }
        public override void OnAgentCreated(Agent agent)
        {
            base.OnAgentCreated(agent);
            if (agent.Character != null)
            {
                BasicCharacterObject character = agent.Character;

                List <string> attributeList = character.getAttributes();

                foreach (string attribute in attributeList)
                {
                    applyAgentComponentsForAttribute(attribute, agent);
                }

                if (agent.Character.Culture != null)
                {
                    if (agent.Character.Culture.StringId.Equals("vampire"))
                    {
                        giveVampireComponentsToAgent(agent);
                    }
                }
            }
        }