示例#1
0
        private void AttachBloodHead(GameObject head)
        {
            var controller = new ParticleController();
            var path       = StringUtil.PathBuilder(
                CombatGUIParams.EFFECTS_PATH,
                CombatGUIParams.SLASH_FATALITY,
                CombatGUIParams.PARTICLES_EXTENSION);
            var blood  = controller.CreateParticle(path);
            var script = blood.AddComponent <SDestroyByLifetime>();

            script.Init(blood, 4f);
            controller.AttachParticle(head, blood);
        }
示例#2
0
 private void ProcessParticles(CChar c)
 {
     if (this._data.ParticlePath != null && !this._data.ParticlePath.Equals(""))
     {
         var path = StringUtil.PathBuilder(
             CombatGUIParams.EFFECTS_PATH,
             this._data.ParticlePath,
             CombatGUIParams.PARTICLES_EXTENSION);
         var controller = new ParticleController();
         var particles  = controller.CreateParticle(path);
         var script     = particles.AddComponent <SDestroyByLifetime>();
         script.Init(particles, CombatGUIParams.PARTICLE_DUR);
         controller.AttachParticle(c.GameHandle, particles);
     }
 }
示例#3
0
        private void AttachBloodParticles(object o)
        {
            var controller = new ParticleController();
            var path       = StringUtil.PathBuilder(
                CombatGUIParams.EFFECTS_PATH,
                "Bleed",
                CombatGUIParams.PARTICLES_EXTENSION);
            var particles = controller.CreateParticle(path);

            if (particles != null)
            {
                controller.AttachParticle(this._targetHandle, particles);
            }
            var script = particles.AddComponent <SDestroyByLifetime>();

            script.Init(particles, 1f);
        }
示例#4
0
        // TODO: Move particle creation to load from .xml files
        private void CreateWaterParticles(CChar c, MTile t)
        {
            var controller = new ParticleController();
            var path       = StringUtil.PathBuilder(
                CombatGUIParams.EFFECTS_PATH,
                "Water",
                CombatGUIParams.PARTICLES_EXTENSION);
            var particles = controller.CreateParticle(path);

            if (particles != null)
            {
                controller.AttachParticle(t.Controller.Handle, particles);
            }
            var script = particles.AddComponent <SDestroyByLifetime>();

            script.Init(particles, 5f);
        }
示例#5
0
        public void DisplayBarrierCreation(CChar target, MHit hit, MBarrier barrier)
        {
            var dmgData = new HitDisplayData();

            dmgData.Color    = CombatGUIParams.BLUE;
            dmgData.Hit      = hit;
            dmgData.Priority = ViewParams.BARRIER_PRIORITY;
            dmgData.Text     = barrier.MaxHP.ToString();
            dmgData.Target   = target.GameHandle;
            dmgData.YOffset  = CombatGUIParams.FLOAT_OFFSET;
            dmgData.Hit.AddDataDisplay(dmgData);
            this.DisplayBarrier(target, hit);
            var controller = new ParticleController();
            var util       = new DecoUtil();
            var particles  = controller.CreateParticle(BARRIER_PARTICLE_PATH);

            util.AttachEffectParticlesToChar(target, particles, EEffect.Barrier);
        }
示例#6
0
        public void ApplyEffectFx(CTile tile)
        {
            if (tile.Model.GetCurrentOccupant() != null)
            {
                if (tile.Model.GetCurrentOccupant().GetType() == typeof(CChar))
                {
                    var controller = new ParticleController();
                    var util       = new DecoUtil();
                    var particles  = controller.CreateParticle(this.Data.ParticlePath);
                    var tgt        = tile.Model.GetCurrentOccupant() as CChar;
                    util.AttachEffectParticlesToChar(tgt, particles, this.Type);
                }
            }
            var placeHolder = new GameObject();
            var script      = placeHolder.AddComponent <SDestroyByLifetime>();

            script.AddCallback(this.CallbackHandler);
            script.Init(placeHolder, 0.2f);
        }
示例#7
0
        public void ProcessSongFX(MAction a)
        {
            var controller = new ParticleController();
            var ability    = a.ActiveAbility as MSong;

            VCombatController.Instance.DisplayActionEventName(a);
            var path = StringUtil.PathBuilder(
                CombatGUIParams.EFFECTS_PATH,
                ability.SongType.ToString().Replace("_", ""),
                CombatGUIParams.PARTICLES_EXTENSION);
            var particles = controller.CreateParticle(path);
            var script    = particles.AddComponent <SDestroyByLifetime>();

            script.Init(particles, 5f);
            controller.AttachParticle(a.Data.Source.GameHandle, particles);
            foreach (var hit in a.Data.Hits)
            {
                hit.CallbackHandler(this);
            }
        }