コード例 #1
0
        private void SpawnEntity()
        {
            Entity instance = GameObject.Instantiate(prefab);

            instance.transform.position = targetPosition;

            ShieldEntity element = instance.gameObject.AddComponent <ShieldEntity>();

            element.Initialize(entitySpawner, instance);
        }
コード例 #2
0
ファイル: ShieldComponent.cs プロジェクト: PurelySimple/Vrax
        public void Start()
        {
            Weapon       = Owner.GetComponent <WeaponComponent>();
            ShieldOffset = (Owner.Rectangle.Size - ShieldEntity.Rectangle.Size).Half + new Distance(Owner.Rectangle.X, Owner.Rectangle.Y);

            var shieldRender = ShieldEntity.GetComponent <RenderComponent>();

            shieldRender.Condition = () => CooldownTimer == 0;

            // Spawn shield
            ShieldEntity.Position = Owner.Position + ShieldOffset;
            Vrax.World.AddEntity(ShieldEntity);
        }
コード例 #3
0
    public void ElementWasDestroyed(ShieldEntity entity)
    {
        if (isDestroying)
        {
            return;
        }

        activeShieldEntities.Remove(entity);

        ShieldEntityEffect effect = SpawnEntity();

        effect.transform.position = entity.transform.position;
        effect.EnterOrbit(this, (int)Shield.CurrentLayers);

        shieldEffectsWaitingToGetShield.Enqueue(effect);

        PollCreateShield();
    }
コード例 #4
0
 public EquipData SetShield(float shieldLivingTime, float shieldReloadingTime)
 {
     shieldEntity = new ShieldEntity(shieldLivingTime, shieldReloadingTime);
     return(this);
 }
コード例 #5
0
 public void AddShieldEntity(ShieldEntity shieldEntity)
 {
     activeShieldEntities.Add(shieldEntity);
 }