示例#1
0
        private Mock <IActor> CreateActorMock()
        {
            var actorMock = new Mock <IActor>();

            var personMock = new Mock <IPerson>();
            var person     = personMock.Object;

            actorMock.SetupGet(x => x.Person).Returns(person);

            _survivalDataMock = new Mock <ISurvivalModule>();
            var survivalStats = new[]
            {
                new SurvivalStat(0, -10, 10)
                {
                    Type = SurvivalStatType.Satiety,
                    Rate = 1
                }
            };

            _survivalDataMock.Setup(x => x.Stats).Returns(survivalStats);
            var survivalData = _survivalDataMock.Object;

            personMock.Setup(x => x.GetModule <ISurvivalModule>(It.IsAny <string>())).Returns(survivalData);
            personMock.Setup(x => x.HasModule(It.Is <string>(x => x == nameof(ISurvivalModule)))).Returns(true);

            var effectCollection = new EffectsModule();

            personMock.Setup(x => x.GetModule <IEffectsModule>(It.IsAny <string>())).Returns(effectCollection);

            return(actorMock);
        }
 void Start()
 {
     EffectsModule             = GetComponent <SpellInstance>().spellCaster.GetComponent <EffectsModule>();
     AttackModule              = EffectsModule.gameObject.GetComponent <AttackModule>();
     AttackModule.OnAttackEnd += LoseBoost;
     EffectsModule.ApplyTemporaryEffect(Effect);
 }
示例#3
0
        public IPerson Create(string personSchemeSid)
        {
            var personScheme = _schemeService.GetScheme <IPersonScheme>(personSchemeSid);

            var person = new HumanPerson(personScheme);

            var attributeModule = RollAndAddPersonAttributesToPerson(person);

            var movingModule = new MovingModule(attributeModule);

            person.AddModule(movingModule);

            var inventoryModule = new InventoryModule();

            person.AddModule(inventoryModule);

            var equipmentModule = new EquipmentModule(personScheme.Slots);

            person.AddModule(equipmentModule);

            var effectsModule = new EffectsModule();

            person.AddModule(effectsModule);

            var evolutionModule = new EvolutionModule(_schemeService);

            person.AddModule(evolutionModule);
            RollTraitPerks(evolutionModule);

            var survivalModule = new HumanSurvivalModule(personScheme, _survivalRandomSource, attributeModule, effectsModule, evolutionModule, equipmentModule)
            {
                PlayerEventLogService = PlayerEventLogService
            };

            person.AddModule(survivalModule);

            RollStartEquipment(inventoryModule, person);

            var defaultActScheme = _schemeService.GetScheme <ITacticalActScheme>(person.Scheme.DefaultAct);
            var combatActModule  = new CombatActModule(defaultActScheme, equipmentModule, effectsModule, evolutionModule);

            person.AddModule(combatActModule);

            var combatStatsModule = new CombatStatsModule(evolutionModule, equipmentModule);

            person.AddModule(combatStatsModule);

            var diseaseModule = new DiseaseModule();

            person.AddModule(diseaseModule);

            person.PlayerEventLogService = PlayerEventLogService;

            return(person);
        }
示例#4
0
        public IPerson Create(string personSchemeSid, IFraction fraction)
        {
            var personScheme = _schemeService.GetScheme <IPersonScheme>(personSchemeSid);

            var person = new HumanPerson(personScheme, fraction);

            var attributes = new[]
            {
                new PersonAttribute(PersonAttributeType.PhysicalStrength, 10),
                new PersonAttribute(PersonAttributeType.Dexterity, 10),
                new PersonAttribute(PersonAttributeType.Perception, 10),
                new PersonAttribute(PersonAttributeType.Constitution, 10)
            };
            var attributesModule = new AttributesModule(attributes);

            person.AddModule(attributesModule);

            var inventoryModule = new InventoryModule();

            person.AddModule(inventoryModule);

            var equipmentModule = new EquipmentModule(personScheme.Slots);

            person.AddModule(equipmentModule);

            var effectsModule = new EffectsModule();

            person.AddModule(effectsModule);

            var evolutionModule = new EvolutionModule(_schemeService);

            person.AddModule(evolutionModule);

            var survivalModule = new HumanSurvivalModule(personScheme, _survivalRandomSource, attributesModule,
                                                         effectsModule, evolutionModule, equipmentModule);

            person.AddModule(survivalModule);

            var defaultActScheme = _schemeService.GetScheme <ITacticalActScheme>(person.Scheme.DefaultAct);
            var combatActModule  =
                new CombatActModule(defaultActScheme, equipmentModule, effectsModule, evolutionModule);

            person.AddModule(combatActModule);

            var combatStatsModule = new CombatStatsModule(evolutionModule, equipmentModule);

            person.AddModule(combatStatsModule);

            var diseaseModule = new DiseaseModule(effectsModule);

            person.AddModule(diseaseModule);

            return(person);
        }
示例#5
0
    private void Start()
    {
        EffectsModule = GetComponent <EffectsModule>();
        EffectsModule.ActiveEffects.Clear();

        if (UseScriptableObjectForOwnedSkills)
        {
            EffectsModule.ActiveEffects = OwnedSkills.GetListOfEffectsInSkills();
        }
        else
        {
            EffectsModule.ActiveEffects = GetListOfEffectsInListOfSkills(ListOfSkills);
        }
        EffectsModule.ApplyActiveEffects();
    }
示例#6
0
 void Start()
 {
     EffectsModule = GetComponent <SpellInstance>().spellCaster.GetComponent <EffectsModule>();
     EffectsModule.ApplyTemporaryEffect(Effect);
     StartCoroutine(LoseBoost());
 }