Exemplo n.º 1
0
        public static void LoadData()
        {
            SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("projectile");

            while (reader.Read())
            {
                ProjectileData data = new ProjectileData();
                data._id     = System.Convert.ToInt32(reader.GetString(reader.GetOrdinal("id")));
                data._path   = reader.GetString(reader.GetOrdinal("path"));
                data._bone   = reader.GetString(reader.GetOrdinal("bone"));
                data._sound  = System.Convert.ToInt32(reader.GetString(reader.GetOrdinal("sound")));
                data._effect = System.Convert.ToInt32(reader.GetString(reader.GetOrdinal("effect")));
                data._axis   = PETools.PEUtil.ToVector3(reader.GetString(reader.GetOrdinal("axis")), ',');
                m_data.Add(data._id, data);
            }
        }
Exemplo n.º 2
0
        public virtual void SetData(ProjectileData data, Transform caster, Transform emitter, Transform target, Vector3 targetPosition, int index = 0)
        {
            //m_Data = data;
            m_Caster         = caster;
            m_Emitter        = emitter;
            m_Target         = target;
            m_TargetPosition = targetPosition;

            m_Valid = true;

            float    atk      = 0.0f;
            SkEntity skCaster = m_Caster.GetComponentInParent <SkEntity>();

            if (skCaster != null)
            {
                SetNet(skCaster._net, false);
                atk = skCaster.GetAttribute((int)AttribType.Atk);
            }

            parentSkEntity = skCaster;
            SkProjectile skPro = skCaster as SkProjectile;

            if (skPro != null)
            {
                parentSkEntity = skPro.GetSkEntityCaster();
                if (parentSkEntity != null)
                {
                    m_Caster = parentSkEntity.transform;
                }
            }

            SetAttribute((int)AttribType.Atk, m_Atk + atk);

            if (m_Trajectory != null)
            {
                m_Trajectory.SetData(m_Caster, m_Emitter, m_Target, m_TargetPosition, index);
            }

            if (null != m_Emitter && !m_Explode)
            {
                CheckInTrigger(m_Emitter.position);
            }
        }
Exemplo n.º 3
0
        public void Register(int id, Transform caster, SkRuntimeInfo info, int index = 0, bool immediately = false)
        {
            ProjectileData projectileData = ProjectileData.GetProjectileData(id);

            if (projectileData == null)
            {
                return;
            }

            Transform emitter = null;

            if (!string.IsNullOrEmpty(projectileData._bone) && "0" != projectileData._bone)
            {
                PeEntity entity = caster.GetComponent <PeEntity>();
                if (null != entity)
                {
                    emitter = entity.GetChild(projectileData._bone);
                }
                else
                {
                    emitter = PETools.PEUtil.GetChild(caster, projectileData._bone);
                }
            }

            Transform trans = null;

            if (info.Target != null)
            {
                PeTrans tr = info.Target.GetComponent <PeTrans>();
                if (tr != null)
                {
                    trans = tr.trans;
                }
            }

            ShootTargetPara    shoot = info.Para as ShootTargetPara;
            SkCarrierCanonPara canon = info.Para as SkCarrierCanonPara;

            if (shoot != null)
            {
                if (emitter != null)
                {
                    Register(id, caster, emitter, shoot.m_TargetPos, index, immediately);
                }
            }
            else if (canon != null)
            {
                WhiteCat.BehaviourController drive = info.Caster.GetComponent <WhiteCat.BehaviourController>();
                IProjectileData data = drive.GetProjectileData(canon);
                if (trans != null)
                {
                    Register(id, caster, data.emissionTransform, trans, index, immediately);
                }
                else
                {
                    Register(id, caster, data.emissionTransform, data.targetPosition, index, immediately);
                }
            }
            else
            {
                if (emitter != null)
                {
                    if (emitter != null)
                    {
                        Register(id, caster, emitter, trans, index, immediately);
                    }
                }
            }
        }
Exemplo n.º 4
0
 public override void SetData(ProjectileData data, Transform caster, Transform emitter, Transform target, Vector3 targetPosition, int index)
 {
     base.SetData(data, caster, emitter, target, targetPosition, index);
     StartCoroutine(SpawnProjectile());
 }