コード例 #1
0
    public void Init_Server(TowerData data)
    {
        Debug.Log("INIT SERVER");
        if (entity.IsOwner())
        {
            _data           = data;
            state.TowerType = (int)_data.towerType;

            if (data.canAttack)
            {
                _attackRate = new SKU.Attribute();
                _damage     = new SKU.Attribute();
                _range      = new SKU.Attribute();

                _attackRate.AddOnValueChangedListener(UpdateAttackRate_Server);
                _damage.AddOnValueChangedListener(UpdateDamage_Server);
                _range.AddOnValueChangedListener(UpdateRange_Server);

                AttributeManager attributeManager = gameObject.AddComponent <AttributeManager>();
                attributeManager.Add(AttributeType.AttackRate, _attackRate);
                attributeManager.Add(AttributeType.Damage, _damage);
                attributeManager.Add(AttributeType.Range, _range);

                _attackRate.BaseValue = _data.attackRate;
                _damage.BaseValue     = _data.damage;
                _range.BaseValue      = _data.range;

                // TODO init from data
                gameObject.AddComponent <ShootBullet>();
            }
        }
    }
コード例 #2
0
    public void Init_Server(EnemyData data)
    {
        if (entity.IsOwner())
        {
            _data        = data;
            state.Health = data.health;
            _health      = new SKU.ResourceAttribute(_data.health, _data.health, 1, 0.5f);
            _health.AddOnValueChangedListener(UpdateHealth_Server);

            AttributeManager attributeManager = gameObject.AddComponent <AttributeManager>();
            attributeManager.Add(AttributeType.Health, _health);

            var movement = gameObject.AddComponent <EnemyMovement>();
            movement.Init_Server(_data.speed);
        }
    }