コード例 #1
0
ファイル: TestMain.cs プロジェクト: blockspacer/MMXLegacy
 public void LoadMonster(TestMonster data)
 {
     if (m_ActiveMonster != null)
     {
         Destroy(m_ActiveMonster);
         Resources.UnloadUnusedAssets();
     }
     m_ActiveMonsterData = data;
     StartCoroutine(LoadMonster(data.Prefab));
     m_LastSpell = null;
 }
コード例 #2
0
ファイル: TestMain.cs プロジェクト: blockspacer/MMXLegacy
 private void MonsterCastBuff(TestSpell spell)
 {
     if (m_ActiveMonster == null)
     {
         return;
     }
     foreach (BuffFX buffFX in m_MonsterBuffEffects)
     {
         if (buffFX != null)
         {
             buffFX.Destroy();
         }
     }
     m_MonsterBuffEffects.Clear();
     foreach (FXQueue fxqueue in m_MonsterBuffGameObjects)
     {
         if (fxqueue != null)
         {
             Destroy(fxqueue.gameObject, 5f);
         }
     }
     m_MonsterBuffGameObjects.Clear();
     foreach (String text in spell.TargetBuffEffectPath)
     {
         if (!String.IsNullOrEmpty(text))
         {
             BuffFX buffFX2 = Helper.ResourcesLoad <BuffFX>(text, false);
             if (buffFX2 != null)
             {
                 Vector3 forward    = m_Party.transform.forward;
                 Vector3 p_slotLeft = -m_Party.transform.right;
                 buffFX2 = Helper.Instantiate <BuffFX>(buffFX2);
                 FXQueue fxqueue2 = new GameObject("FXQueue " + buffFX2.name).AddComponent <FXQueue>();
                 fxqueue2.SetData(new FXQueue.Entry[]
                 {
                     new FXQueue.Entry(buffFX2, 0f, 0f)
                 }, 0);
                 FXArgs args = new FXArgs(m_ActiveMonster, m_ActiveMonster, m_ActiveMonster, m_ActiveMonster, m_ActiveMonster.transform.position, forward, p_slotLeft, m_ActiveMonster.transform.position);
                 fxqueue2.Execute(args);
                 m_MonsterBuffGameObjects.Add(fxqueue2);
                 m_MonsterBuffEffects.Add(buffFX2);
                 m_ActiveMonsterAnimationHandler.Hit();
             }
             else
             {
                 Debug.LogError("MonsterCastBuff: BuffEffect not found! " + text);
             }
         }
     }
 }
コード例 #3
0
 public void Initialize()
 {
     TestSpell.Make();
     NotHornBreak.Make();
 }
コード例 #4
0
ファイル: TestMain.cs プロジェクト: blockspacer/MMXLegacy
    public void MonsterCastSpell(ETarget target, TestSpell spell)
    {
        m_LastSpellIsMonster = false;
        m_LastSpell          = spell;
        m_TargetOrWizard     = target;
        FXDescription fxdescription = Helper.ResourcesLoad <FXDescription>(spell.EffectPath, false);

        if (fxdescription == null)
        {
            Debug.LogError("FXDescription not found! at " + spell.EffectPath, this);
            return;
        }
        if (target == ETarget.Party)
        {
            target = (ETarget)UnityEngine.Random.Range(1, 4);
        }
        GameObject gameObject;

        switch (target)
        {
        case ETarget.Member1:
            gameObject = m_Member1;
            break;

        case ETarget.Member2:
            gameObject = m_Member2;
            break;

        case ETarget.Member3:
            gameObject = m_Member3;
            break;

        case ETarget.Member4:
            gameObject = m_Member4;
            break;

        default:
            return;
        }
        Vector3 forward    = m_ActiveMonster.transform.forward;
        Vector3 p_slotLeft = -m_ActiveMonster.transform.right;

        m_ActiveMonsterAnimationHandler.AttackMagic(spell.AnimationNum);
        AnimatorEventHandler component     = m_ActiveMonsterAnimationHandler.GetComponent <AnimatorEventHandler>();
        GameObject           activeMonster = m_ActiveMonster;
        ETargetType          targetType    = spell.TargetType;
        FXArgs p_args;

        if ((targetType & ETargetType.MULTY) == ETargetType.MULTY)
        {
            p_args = new FXArgs(activeMonster, m_PartySlot, activeMonster, m_PartySlot, activeMonster.transform.position, forward, p_slotLeft, m_PartySlot.transform.position, new List <GameObject>
            {
                m_Member1,
                m_Member2,
                m_Member3,
                m_Member4
            });
        }
        else if ((targetType & ETargetType.SINGLE) == ETargetType.SINGLE)
        {
            p_args = new FXArgs(activeMonster, gameObject, activeMonster, gameObject, activeMonster.transform.position, forward, p_slotLeft, m_PartySlot.transform.position, new List <GameObject>
            {
                gameObject
            });
        }
        else if ((targetType & ETargetType.ADJACENT) == ETargetType.ADJACENT)
        {
            p_args = new FXArgs(activeMonster, activeMonster, activeMonster, activeMonster, activeMonster.transform.position, forward, p_slotLeft, m_PartySlot.transform.position, new List <GameObject>
            {
                gameObject
            });
        }
        else
        {
            p_args = new FXArgs(activeMonster, activeMonster, activeMonster, activeMonster, activeMonster.transform.position, forward, p_slotLeft, m_PartySlot.transform.position, new List <GameObject>
            {
                gameObject
            });
        }
        fxdescription = Helper.Instantiate <FXDescription>(fxdescription);
        fxdescription.Configurate(component, p_args);
    }
コード例 #5
0
ファイル: TestMain.cs プロジェクト: blockspacer/MMXLegacy
    public void PartyCastSpell(ETarget wizard, TestSpell spell)
    {
        m_LastSpellIsMonster = false;
        m_LastSpell          = spell;
        m_TargetOrWizard     = wizard;
        if (!String.IsNullOrEmpty(spell.EffectPath))
        {
            FXQueue fxqueue = Helper.ResourcesLoad <FXQueue>(spell.EffectPath, false);
            if (fxqueue != null && m_ActiveMonster != null)
            {
                if (wizard == ETarget.Party)
                {
                    wizard = (ETarget)UnityEngine.Random.Range(1, 4);
                }
                GameObject gameObject;
                switch (wizard)
                {
                case ETarget.Member1:
                    gameObject = m_Member1;
                    break;

                case ETarget.Member2:
                    gameObject = m_Member2;
                    break;

                case ETarget.Member3:
                    gameObject = m_Member3;
                    break;

                case ETarget.Member4:
                    gameObject = m_Member4;
                    break;

                default:
                    return;
                }
                Vector3     forward    = m_Party.transform.forward;
                Vector3     p_slotLeft = -m_Party.transform.right;
                ETargetType targetType = spell.TargetType;
                FXArgs      args;
                if ((targetType & ETargetType.PARTY) == ETargetType.PARTY)
                {
                    args = new FXArgs(m_PartySlot, m_PartySlot, m_PartySlot, m_PartySlot, m_PartySlot.transform.position, forward, p_slotLeft, m_PartySlot.transform.position, new List <GameObject>
                    {
                        m_PartySlot
                    });
                }
                else if ((targetType & ETargetType.LINE_OF_SIGHT) == ETargetType.LINE_OF_SIGHT)
                {
                    args = new FXArgs(m_PartySlot, m_MonsterSlot, m_PartySlot, m_MonsterSlot, m_PartySlot.transform.position, forward, p_slotLeft, m_MonsterSlot.transform.position, new List <GameObject>
                    {
                        m_ActiveMonster
                    });
                }
                else if ((targetType & ETargetType.MULTY) == ETargetType.MULTY)
                {
                    args = new FXArgs(gameObject, m_MonsterSlot, gameObject, m_MonsterSlot, m_PartySlot.transform.position, forward, p_slotLeft, m_MonsterSlot.transform.position, new List <GameObject>
                    {
                        m_ActiveMonster
                    });
                }
                else if ((targetType & ETargetType.SINGLE) == ETargetType.SINGLE)
                {
                    FXTags     component  = m_ActiveMonster.GetComponent <FXTags>();
                    GameObject p_endPoint = m_ActiveMonster;
                    if (component != null)
                    {
                        p_endPoint = component.FindOne("HitSpot");
                    }
                    else
                    {
                        Debug.LogError("FXTags not found!!\nTarget=" + m_ActiveMonster, m_ActiveMonster);
                    }
                    args = new FXArgs(gameObject, m_MonsterSlot, gameObject, p_endPoint, m_PartySlot.transform.position, forward, p_slotLeft, m_MonsterSlot.transform.position, new List <GameObject>
                    {
                        m_ActiveMonster
                    });
                }
                else if ((targetType & ETargetType.ADJACENT) == ETargetType.ADJACENT)
                {
                    args = new FXArgs(gameObject, m_PartySlot, gameObject, m_PartySlot, m_PartySlot.transform.position, forward, p_slotLeft, m_MonsterSlot.transform.position, new List <GameObject>
                    {
                        m_ActiveMonster
                    });
                }
                else
                {
                    Debug.LogError("error !! spellType: " + targetType);
                    args = new FXArgs(gameObject, m_ActiveMonster, gameObject, m_ActiveMonster, m_PartySlot.transform.position, forward, p_slotLeft, m_MonsterSlot.transform.position, new List <GameObject>
                    {
                        m_ActiveMonster
                    });
                }
                FXQueue fxqueue2 = Helper.Instantiate <FXQueue>(fxqueue);
                fxqueue2.Finished += delegate(Object sender, EventArgs e)
                {
                    m_ActiveMonsterAnimationHandler.Hit();
                };
                fxqueue2.Execute(args);
            }
            else
            {
                Debug.LogError("SpellEffect not found! " + spell.EffectPath);
            }
        }
        PartyCastBuff(spell);
        MonsterCastBuff(spell);
    }
コード例 #6
0
 // Use this for initialization
 void Start()
 {
     spell = gameObject.GetComponent <TestSpell>();
 }