示例#1
0
    protected override void DoInit(BaseEntityDependencies dependencies)
    {
        var blockingData = (BlockingData)_entityData;

        _blockingTrait = new BlockingTrait();
        _blockingTrait.Init(this, blockingData.BlockingTrait, dependencies.GameEvents.Blocks);
    }
示例#2
0
 protected override void DoInit(BaseEntityDependencies dependencies)
 {
     _trapData     = (TrapData)_entityData;
     _triggerTrait = new TriggerTrait();
     _triggerTrait.Init(this, _entityController);
     _entitiesAtTrap = new Dictionary <BaseEntity, float>();
     _entityEvents   = dependencies.GameEvents.Entities;
     _entityEvents.EntitiesRemoved += EntitiesRemoved;
     _trapEvents = dependencies.GameEvents.Traps;
 }
示例#3
0
    protected override void DoInit(BaseEntityDependencies deps)
    {
        base.DoInit(deps);

        _absorbEvents = ((KrbGameEvents)deps.GameEvents).Absorption;

        _healthEvents = deps.GameEvents.Health;

        _healthEvents.HealthEvent += OnHealthEvent;

        _krbMonsterData = (KrbMonsterData)_monsterData;
        _absorptionData = _krbMonsterData.AbsorptionData;
    }
示例#4
0
    public override Monster CreateMonster(MonsterData data, Vector2Int coords)
    {
        BaseEntityDependencies deps = new BaseEntityDependencies()
        {
            ParentNode       = null,
            EntityController = this,
            Coords           = coords,
            MapController    = _mapController
        };
        var monster = Create <KrbMonster>(_entityCreationData.MonsterPrefab, data, deps);

        return(monster);
    }
示例#5
0
    public override Player CreatePlayer(PlayerData data, Vector2Int coords)
    {
        BaseEntityDependencies deps = new BaseEntityDependencies()
        {
            ParentNode       = null,
            EntityController = this,
            MapController    = _mapController,
            GameEvents       = _gameEvents,
            Coords           = coords
        };

        _player = Create <KrbPlayer>(_entityCreationData.PlayerPrefab, data, deps);
        return(_player);
    }
示例#6
0
    protected override void DoInit(BaseEntityDependencies deps)
    {
        _playerData = ((PlayerData)_entityData);

        name     = "Player";
        _hpTrait = new HPTrait();
        _hpTrait.Init(this, _playerData.HPData, deps.GameEvents.Health);

        _speed = _playerData.Speed;

        _movingTrait = _playerData.MovingTraitData.CreateRuntimeTrait();

        _playerEvents = deps.GameEvents.Player;
        _healthEvents = deps.GameEvents.Health;
        _healthEvents.HealthExhausted += OnDied;

        _battleTrait = new BattleTrait();
        _battleTrait.Init(_entityController, _mapController, _playerData.BattleData, this, deps.GameEvents);
    }
示例#7
0
    protected override void DoInit(BaseEntityDependencies deps)
    {
        _monsterData = ((MonsterData)_entityData);
        name         = _monsterData.name;
        _hpTrait     = new HPTrait();
        _hpTrait.Init(this, _monsterData.HPData, deps.GameEvents.Health);

        _decisionDelay     = _monsterData.ThinkingDelay;
        _elapsedNextAction = 0.0f;
        _elapsedPathUpdate = 0.0f;

        _movingTrait = _monsterData.MovingTraitData.CreateRuntimeTrait();

        _monsterEvents = deps.GameEvents.Monsters;

        _currentState = _monsterData.InitialState;
        _currentStateTimeUnitsElapsed = 0.0f;

        _battleTrait = new BattleTrait();
        _battleTrait.Init(_entityController, _mapController, _monsterData.BattleData, this, deps.GameEvents);
    }