Пример #1
0
 public static void RemovePetSummonRitualSkill(long ownerID, LocalDimensionPetSpirit spirit)
 {
     if (LocalAgent.LocalDimensionLiaison == null)
     {
         return;
     }
     LocalAgent.LocalDimensionLiaison.RemovePetSummonRitualSkill(ownerID, spirit);
 }
Пример #2
0
 public static void SummonPet(long ownerID, LocalDimensionPetSpirit spirit)
 {
     if (LocalAgent.LocalDimensionLiaison == null)
     {
         return;
     }
     LocalAgent.LocalDimensionLiaison.SummonPet(ownerID, spirit);
 }
Пример #3
0
 public static void ReleasePet(LocalDimensionPetSpirit spirit, bool isDead = false)
 {
     if (LocalAgent.LocalDimensionLiaison == null)
     {
         return;
     }
     LocalAgent.LocalDimensionLiaison.ReleasePet(spirit, isDead);
 }
    public static void AppSummonPet(Effect effectData, EntityParent caster, int skillID, bool isCommunicateMix)
    {
        if (isCommunicateMix)
        {
            return;
        }
        if (caster == null)
        {
            return;
        }
        if (!caster.Actor)
        {
            return;
        }
        XDict <int, LocalDimensionPetSpirit> petSpiritByOwnerID = LocalAgent.GetPetSpiritByOwnerID(caster.ID);

        if (petSpiritByOwnerID == null)
        {
            return;
        }
        if (petSpiritByOwnerID.Count == 0)
        {
            return;
        }
        bool flag = true;

        for (int i = 0; i < petSpiritByOwnerID.Count; i++)
        {
            LocalDimensionPetSpirit localDimensionPetSpirit = petSpiritByOwnerID.ElementValueAt(i);
            if (localDimensionPetSpirit.summonSkillInfo != null)
            {
                if (localDimensionPetSpirit.summonSkillInfo.skillId == skillID)
                {
                    SummonPetAnnouncer.Announce(caster, DataReader <Pet> .Get(localDimensionPetSpirit.TypeID).petType);
                    flag = localDimensionPetSpirit.IsSummonMonopolize;
                    LocalAgent.SummonPet(caster.ID, localDimensionPetSpirit);
                    break;
                }
            }
        }
        if (flag)
        {
            for (int j = 0; j < petSpiritByOwnerID.Count; j++)
            {
                LocalDimensionPetSpirit localDimensionPetSpirit2 = petSpiritByOwnerID.ElementValueAt(j);
                if (localDimensionPetSpirit2.summonSkillInfo != null)
                {
                    if (localDimensionPetSpirit2.summonSkillInfo.skillId != skillID)
                    {
                        if (EntityWorld.Instance.EntCurPet.ContainsKey(localDimensionPetSpirit2.ID))
                        {
                            LocalAgent.ReleasePet(localDimensionPetSpirit2, false);
                        }
                    }
                }
            }
        }
    }