public BaseMagic Cast(BaseMagic magic, Vector3 position) { if (magicList.Contains(magic.MagicType)) { if (Caster.CurrentMana >= magic.Mana) { Caster.ReduceMana(magic.Mana); return(magic.GetInstantiate(position)); } } return(null); }
public static BaseMagic GetInstantiate(string magicName) { var savedMagic = magics[magicName]; if (savedMagic == null) { return(null); } var newMagic = BaseMagic.Instantiate(savedMagic) as BaseMagic; return(newMagic); }
private void InitMagic(BaseMagic magicprehab, int index) { //クラスを消すため依存に注意 if (currentMagics[index] != null) { Destroy(currentMagics[index]); } var magic = Instantiate(magicprehab, Vector3.zero, Quaternion.identity); magic.Init(core, attackObservable[index]); magic.transform.SetParent(magics.transform, false); magic.transform.localPosition = instantLocalPos; magic.HascastMagic.Skip(1).Subscribe(x => canDoMagic = !x); currentMagics[index] = magic; }
//Augmentations: To be added. public void LoadPrimary(Attack loadtk) { BaseWeapon temp = Instantiate(primW); primW = temp; primW.LoadWeapon(loadtk); if (_stats == null) { _stats = _me.myStats; //redundant, probably see if there's an easy injectable fix? } loadtk.dmgStats = _stats.GetHitStats(primW.WeaponDamage, primW.WeaponType); loadtk.Cooldown = primW.cooldown; //TEMP_DEBUG: Weapon Load Pool if (primW is BaseGun) { //Late check script if (pooler == null) { pooler = _me._pool; } BaseGun gun = primW as BaseGun; gun.FindAmmo(pooler); } else if (primW is BaseMagic) { //Late check script if (pooler == null) { pooler = _me._pool; } BaseMagic spell = primW as BaseMagic; spell.FindPool(pooler); } else if (primW is BaseMelee) { BaseMelee smack = primW as BaseMelee; smack.FindPoint(MeleePoint); } //Apply items here, or like, in the load function. }
/// <summary> /// 单体魔法攻击 /// </summary> /// <param name="context"></param> /// <param name="attacker"></param> /// <param name="target"></param> /// <param name="magic"></param> public ActionMagicAttackOne(SimulatorContext context, FightingCharacter attacker, FightingCharacter target, BaseMagic magic) : base(context, attacker, target) { _magic = magic; }
/// <summary> /// 全体辅助魔法 /// </summary> /// <param name="context"></param> /// <param name="attacker"></param> /// <param name="targets"></param> /// <param name="magic"></param> public ActionMagicHelpAll(SimulatorContext context, FightingCharacter attacker, List <FightingCharacter> targets, BaseMagic magic) : base(context, attacker, targets) { _magic = magic; }
public void AddMagic(BaseMagic magic) { magicList.Add(magic.MagicType); }