View Single Post
  #7  
Old 10-11-2012, 05:50 AM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

no it's depend on the damager hits

from Battle Script / strategy.dll AddScoreToInitiator(AiActor actor, AiDamageInitiator initiator, double score):
Code:
        public int AddScoreToInitiator(AiActor actor, AiDamageInitiator initiator, double score)
        {
            DamagerScore item = new DamagerScore(initiator, score, base.Time.current());
            int index = this.damList.victim.IndexOf(actor);
            if (index >= 0)
            {
                List<DamagerScore> list = this.damList.damagers[index];
                int num2 = list.IndexOf(item);
                if (num2 >= 0)
                {
                    DamagerScore local1 = list[num2];
                    local1.score += score;
                    list[num2].time = base.Time.current();
                    return index;
                }
                list.Insert(0, item);
                return index;
            }
            this.damList.victim.Insert(0, actor);
            List<DamagerScore> list2 = new List<DamagerScore> {
                item
            };
            this.damList.damagers.Insert(0, list2);
            return 0;
        }




        public override void OnActorDamaged(int missionNumber, string shortName, AiActor actor, AiDamageInitiator initiator, NamedDamageTypes damageType)
        {
            switch (damageType)
            {
                case NamedDamageTypes.ChunkSmallDamage:
                case NamedDamageTypes.PartSmallDamage:
                case NamedDamageTypes.WeaponSmallDamage:
                case NamedDamageTypes.EngineSmallDamage:
                case NamedDamageTypes.LifeKeeperPartSmallDamage:
                    this.AddScoreToInitiator(actor, initiator, 0.1);
                    break;

                case NamedDamageTypes.ChunkLargeDamage:
                case NamedDamageTypes.PartLargeDamage:
                case NamedDamageTypes.WeaponLargeDamage:
                case NamedDamageTypes.EngineLargeDamage:
                case NamedDamageTypes.LifeKeeperPartLargeDamage:
                    this.AddScoreToInitiator(actor, initiator, 0.2);
                    break;
            }
            foreach (AMission mission in base.missions)
            {
                if (mission.IsMissionListener(missionNumber))
                {
                    mission.OnActorDamaged(missionNumber, shortName, actor, initiator, damageType);
                }
            }
        }


        public override void OnActorDead(int missionNumber, string shortName, AiActor actor, AiDamageInitiator initiator)
        {
            if ((base.GamePlay.gpPlayer().Place() == actor) && base.GamePlay.gpIsServerSingle())
            {
                base.GamePlay.gpHUDLogCenter("Press Esc to end mission.");
            }
            if (actor is AiPerson)
            {
                initiator = null;
            }
            int index = -1;
            if (initiator != null)
            {
                index = this.AddScoreToInitiator(actor, initiator, 0.5);
            }
            else
            {
                index = this.damList.victim.IndexOf(actor);
            }
            List<DamagerScore> damages = null;
            if (index >= 0)
            {
                damages = this.damList.damagers[index];
            }
            else
            {
                damages = new List<DamagerScore>();
            }
            foreach (AMission mission in base.missions)
            {
                if (mission.IsMissionListener(missionNumber))
                {
                    mission.OnActorDead(missionNumber, shortName, actor, damages);
                }
            }
            this.LogServer_ActorDead(missionNumber, shortName, actor, initiator);
        }

        public override void OnAircraftDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, NamedDamageTypes damageType)
        {
            base.OnAircraftDamaged(missionNumber, shortName, aircraft, initiator, damageType);
            this.AddScoreToInitiator(aircraft, initiator, 0.1);
        }


        public override void OnAircraftLimbDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiLimbDamage limbDamage)
        {
            base.OnAircraftLimbDamaged(missionNumber, shortName, aircraft, limbDamage);
            this.AddScoreToInitiator(aircraft, limbDamage.Initiator, 0.2);
        }


        public override void OnPersonHealth(AiPerson person, AiDamageInitiator initiator, float deltaHealth)
        {
            this.AddScoreToInitiator(person, initiator, ((double) deltaHealth) / 255.0);
            base.OnPersonHealth(person, initiator, deltaHealth);
        }

Last edited by FG28_Kodiak; 10-11-2012 at 06:03 AM.
Reply With Quote