示例#1
0
    public void CastSpell(UInt32 nID)
    {
        Unity.Logout.Log("FireWeapon::CastSpell:nID=" + nID);

        if (gameObject == null)
        {
            return;
        }

        if (_FireConditions.Count <= 0)
        {
            return;
        }

        foreach (var condition in _FireConditions[nID])
        {
            if (!condition.CanFire(_Weapons[nID]))
            {
                return;
            }
        }
        _Weapons[nID].Duration = _Weapons[nID].CooldownTime;

        myship.PlaySparksEffect();

        weapon_parent = Trans.FindObj(gameObject, "weapon_born_" + nID);
        if (weapon_parent == null)
        {
            Debug.LogError("not found " + "weapon_born_" + nID);
        }

        string logStr = "FireWeapon::CastSpell: " +
                        "position:" + weapon_parent.transform.position +
                        ",eulerAngles:" + weapon_parent.transform.eulerAngles +
                        ",forward:" + weapon_parent.transform.forward;

        Debug.Log(logStr);
        Unity.Logout.Log(logStr);


        KBEngine.Event.fireIn("useWeapon",
                              weapon_parent.transform.position,
                              weapon_parent.transform.eulerAngles,
                              weapon_parent.transform.forward, nID);


        GameObject BarObj = Trans.FindObj(Camera.main.gameObject, _Weapons[nID].BarNode);

        if (BarObj != null)
        {
            Progressbar BarScript = BarObj.GetComponent <Progressbar>();
            BarScript.Progressbar_WeaponBronEvent(_Weapons[nID]);
        }
    }