コード例 #1
0
        public override void Launch()
        {
            UnitHealth enemyUnit;

            foreach (RaycastHit hit in Physics.BoxCastAll(spellIndicator.transform.position, new Vector3(spellRange, 2f, 2f), Vector3.up))
            {
                if (hit.collider.tag != this.tag && (enemyUnit = hit.collider.GetComponent <UnitHealth>()) != null)
                {
                    enemyUnit.TakeDamage(spellPower);
                }
            }
            Destroy(spellIndicator);
            unit.GetComponent <Rigidbody>().AddForce(-unit.transform.forward * 50f, ForceMode.VelocityChange);
            rootStatus = new RootStatus();
            if (!rootStatus.Init(unit.GetComponent <Unit>()))
            {
                rootStatus = null;
            }
            phaseStatus = new PhaseStatus();
            if (!phaseStatus.Init(unit.GetComponent <Unit>()))
            {
                phaseStatus = null;
            }
            jumpTimer = jumpLenght;
        }
コード例 #2
0
ファイル: Shield.cs プロジェクト: MaiDaine/Prototype
        public override void Launch()
        {
            unit.GetComponent <UnitHealthShield>().AddShield(spellPower, shieldDuration, Clean);

            phaseStatus          = new PhaseStatus();
            phaseStatus.duration = shieldDuration;
            if (!phaseStatus.Init(unit.GetComponent <Unit>()))
            {
                phaseStatus = null;
            }

            speedStatus               = new SpeedStatus();
            speedStatus.duration      = 0f;
            speedStatus.speedModifier = speedModifier;
            if (!speedStatus.Init(unit.GetComponent <Unit>()))
            {
                speedStatus = null;
            }
            spellVisual = Instantiate(visualEffectRef, unit.GetComponent <ControllableUnit>().unitCenter);
        }