Пример #1
0
        // skill instances management
        //============================
        public static SkInst StartSkill(SkEntity caster, SkEntity target, int skId, ISkPara para = null, bool bStartImm = true)
        {
            SkData skData = null;

            if (!SkData.s_SkillTbl.TryGetValue(skId, out skData))
            {
                Debug.LogError("[SkInst]:Invalid skill id:" + skId);
                return(null);
            }

                        #if DBG_COL_ATK
            //if(!SkDebug.IsDebuggingID(skId))	return null;
                        #endif
            // cool check
            SkCoolInfo cinfo = GetSkillCoolingInfo(caster, skData);
            if (cinfo != null && cinfo._fLeftTime > 0)
            {
                //Debug.LogError("[SkInst]:Skill id:" + skId +" in cooling..");
                return(null);
            }

            SkInst inst = new SkInst();
            SkInstPool.Instance._skInsts.Add(inst);
            inst._skData    = skData;
            inst._para      = para;
            inst._caster    = caster;
            inst._target    = target;
            inst._coroutine = bStartImm ? new CoroutineStoppable(caster, inst.Exec()) : null;
            return(inst);
        }
Пример #2
0
        public void StartSkill(SkEntity target, int id, ISkPara para = null, bool bStartImm = true)
        {
            if (m_SkEntity != null)
            {
                if (m_PeSkEntity != null)
                {
                    m_PeSkEntity.DispatchTargetSkill(m_SkEntity);
                }

                m_SkEntity.StartSkill(target, id, para, bStartImm);
            }
        }
Пример #3
0
        public virtual SkInst StartSkill(SkEntity target, int id, ISkPara para = null, bool bStartImm = true)
        {
            SkInst inst = SkInst.StartSkill(this, target, id, para, bStartImm);

            if (inst != null)
            {
                if (IsController())
                {
                    if (para is ISkParaNet)
                    {
                        SendStartSkill(target, id, ((ISkParaNet)para).ToFloatArray());
                    }
                    else if (para == null)
                    {
                        SendStartSkill(target, id);
                    }
                    else
                    {
                        Debug.LogError("error skill para");
                    }
                }
            }
            return(inst);
        }
Пример #4
0
 /// <summary> 获取武器对象 </summary>
 public VCPWeapon GetWeapon(ISkPara para)
 {
     return(_weapons[(para as SkCarrierCanonPara)._idxCanon]);
 }
Пример #5
0
 /// <summary> 发动技能(武器) </summary>
 public void StartSkill(int skillId, ISkPara para)
 {
     _creationSkEntity.StartSkill(attackTargetEntity, skillId, para);
 }
Пример #6
0
 /// <summary> 获取炮弹数据块 </summary>
 public IProjectileData GetProjectileData(ISkPara param)
 {
     return(_weapons[(param as SkCarrierCanonPara)._idxCanon]);
 }