Exemple #1
0
    public void HandleUseSkill(long casterID, long targetID, int skillID, bool isCommunicateMix = false)
    {
        Skill skillDataByID = LocalAgent.GetSkillDataByID(skillID);

        if (skillDataByID == null)
        {
            return;
        }
        EntityParent entityByID = LocalAgent.GetEntityByID(casterID);

        if (entityByID == null)
        {
            return;
        }
        entityByID.SetValue(GameData.AttrType.ActPoint, entityByID.TryAddValue(GameData.AttrType.ActPoint, (long)(skillDataByID.actionPoint + entityByID.GetSkillActionPointVariationByType(skillDataByID.skilltype))), true);
        if (isCommunicateMix)
        {
            GlobalBattleNetwork.Instance.SendClientDriveBattleSkill(casterID, targetID, skillID);
        }
        if (!this.skillStateTable.ContainsKey(casterID))
        {
            this.skillStateTable.Add(casterID, new XDict <int, long>());
        }
        if (!this.skillStateTable[casterID].ContainsKey(skillID))
        {
            this.skillStateTable[casterID].Add(skillID, targetID);
        }
        else
        {
            this.skillStateTable[casterID][skillID] = targetID;
        }
        EntityParent entityByID2 = LocalAgent.GetEntityByID(targetID);

        UseSkillAnnouncer.Announce(entityByID, entityByID2, skillID);
        BacameSkillTargetAnnouncer.Announce(entityByID2, entityByID, skillID);
    }