Exemplo n.º 1
0
 protected override void OnUnitEntersRange(Unit unit)
 {
     base.OnUnitEntersRange(unit);
     var b = (Buff)ApplyBuff.Clone();
     if(unit.AddBuff(b, Performer, Mediator))
         activeBuffs.Add(unit, b);
 }
 public Projectile(Projectile copy)
     : base(copy)
 {
     velocity = copy.velocity;
     timeToLive = TimeToLive = copy.TimeToLive;
     performer = copy.performer;
 }
Exemplo n.º 3
0
 protected override void OnUnitExitsRange(Unit unit)
 {
     base.OnUnitExitsRange(unit);
     Buff b;
     if (activeBuffs.TryGetValue(unit, out b))
     {
         unit.RemoveBuff(b);
         activeBuffs.Remove(unit);
     }
 }
Exemplo n.º 4
0
        public override void DoPickup(Unit unit)
        {
            unit.PistolAmmo += Ammo;

            Interface.ScrollingCombatText s;
            Game.Instance.Interface.AddChild(s = new Interface.ScrollingCombatText
            {
                Text = "+" + Ammo + Locale.Resource.GenLCBullets,
                WorldPosition = Translation + Vector3.UnitZ * 1
            });
            s.Font.Color = System.Drawing.Color.Green;

            var sm = Program.Instance.SoundManager;
            sm.GetSFX(global::Client.Sound.SFX.AmmoPickup1).Play(new Sound.PlayArgs());

            base.DoPickup(unit);
        }
Exemplo n.º 5
0
 public override void DoPickup(Unit unit)
 {
     new FinishScript
     {
         InitDelay = 0.2f,
         State = GameState.Won,
         Reason = "Finished map"
     }.TryStartPerform();
     base.DoPickup(unit);
 }
Exemplo n.º 6
0
        public override void DoPickup(Unit unit)
        {
            ((Units.MainCharacter)unit).TalismansCollected++;

            Interface.ScrollingCombatText s;
            Game.Instance.Interface.AddChild(s = new Interface.ScrollingCombatText
            {
                Text = "+1 talisman",
                WorldPosition = Translation + Vector3.UnitZ * 1
            });
            s.Font.Color = System.Drawing.Color.Green;

            base.DoPickup(unit);
        }
Exemplo n.º 7
0
 protected virtual void OnUnitEntersRange(Unit unit)
 {
 }
Exemplo n.º 8
0
 void u_StartPerformAbility(Unit arg1, Ability arg2)
 {
     if (!Ability.IsAssignableFrom(arg2.GetType())) return;
     Script.TryStartPerform();
     nUsed++;
     if (NUses >= 0 && nUsed >= NUses)
         TryEndPerform(false);
 }
Exemplo n.º 9
0
 public override float AIPriority(Unit performer, Vector3 targetPosition, Destructible targetUnit)
 {
     if (IsPerforming) return 2;
     if (!IsValidTarget(targetUnit)) return -100;
     if (!IsEffectiveTowardsTarget(targetPosition, targetUnit)) return -50;
     if (CurrentCooldown >= 0) return 0.1f;
     if (!IsInEffectiveRange(targetUnit)) return 0.5f;
     return 1;
 }
Exemplo n.º 10
0
        public override void DoPickup(Unit unit)
        {
            if (unit.HitPoints >= unit.MaxHitPoints) return;

            //Sound and visual effect
            Program.Instance.SoundManager.GetSFX(Client.Sound.SFX.PotionPickup1).Play(new Client.Sound.PlayArgs { });
            unit.AddChild(new Client.Game.Map.Effects.RageSac { Translation = Vector3.UnitZ * 1.5f });

            unit.Heal(null, (int)(HealPerc * unit.MaxHitPoints));

            Interface.ScrollingCombatText s;
            Game.Instance.Interface.AddChild(s = new Interface.ScrollingCombatText
            {
                Text = "+" + (int)(100 * HealPerc) + "% " + Locale.Resource.GenLCHP,
                WorldPosition = Translation + Vector3.UnitZ * 1
            });
            s.Font.Color = System.Drawing.Color.Green;

            base.DoPickup(unit);
        }
Exemplo n.º 11
0
        protected override void OnKilled(Unit perpetrator, Script script)
        {
            base.OnKilled(perpetrator, script);
            var sm = Program.Instance.SoundManager;

            //if (onKilledSoundCooldown == 0 && onKilledSoundPlaybackCount < onKilledSoundLimit)
            //{
            //    onKilledSoundCooldown = onHitSoundCooldownLength;
            //    onKilledSoundPlaybackCount++;

            if(random.NextDouble() < 0.4)
                sm.GetSFX(global::Client.Sound.SFX.OrgansOnGround1).Play(new Sound.PlayArgs
                {
                    Position = Position,
                    Velocity = Vector3.Zero
                });
            //}

            sm.GetSFX(global::Client.Sound.SFX.FleshExplode1).Play(new Sound.PlayArgs
            {
                Position = Position,
                Velocity = Vector3.Zero
            });

            UpdatePlaybackCount(float.MaxValue, ref onHitSoundCooldown, ref onHitSoundPlaybackCount);
        }
Exemplo n.º 12
0
 public void MakeAwareOfUnit(Unit unit)
 {
     if (State != UnitState.Alive) return;
     if (unit != null)
         if (Mechanics.TeamReleations.IsHostile(this.Team, unit.Team))
         {
             InCombat = true;
             ChangeState(TryFindBetterState(aiState, unit));
         }
 }
Exemplo n.º 13
0
 protected virtual void OnUnitExitsRange(Unit unit)
 {
 }
Exemplo n.º 14
0
 public bool AddBuff(Buff buff, Unit performer, GameEntity mediator)
 {
     if (!CanAddBuff(buff)) return false;
     buff.Performer = performer;
     buff.Mediator = mediator;
     if (IsInGame)
     {
         if (CanAddBuff(buff))
         {
             buff.TargetPosition = this.Position;
             buff.TargetEntity = this;
             if(buff.TryStartPerform())
                 ActiveBuffs.Add(buff);
         }
     }
     else
         ActiveBuffs.Add(buff);
     return true;
 }
Exemplo n.º 15
0
 public virtual void DoPickup(Unit unit)
 {
     Remove();
 }
Exemplo n.º 16
0
 protected override void OnKilled(Unit perpetrator, Script script)
 {
     base.OnKilled(perpetrator, script);
     InCombat = false;
     if (isDrowning)
         OnEndsPiranhas();
 }
Exemplo n.º 17
0
        public override void DoPickup(Unit unit)
        {
            ((Units.MainCharacter)unit).AddRageLevelProgress(Rage);

            //Sound and visual effect
            Program.Instance.SoundManager.GetSFX(Client.Sound.SFX.PotionPickup1).Play(new Client.Sound.PlayArgs { });
            unit.AddChild(new Client.Game.Map.Effects.HpSac { Translation = Vector3.UnitZ * 1.5f });

            Interface.ScrollingCombatText s;
            Game.Instance.Interface.AddChild(s = new Interface.ScrollingCombatText
            {
                Text = "+" + Rage + " " + Locale.Resource.GenLCRage,
                WorldPosition = Translation + Vector3.UnitZ * 1
            });
            s.Font.Color = System.Drawing.Color.Orange;

            base.DoPickup(unit);
        }
Exemplo n.º 18
0
 public override float AIPriority(Unit performer, Vector3 targetPosition, Destructible targetUnit)
 {
     float d = Math.Max(1, (targetUnit.Position - Game.Instance.Map.MainCharacter.Position).Length());
     return base.AIPriority(performer, targetPosition, targetUnit) + 0.01f / d;
 }
Exemplo n.º 19
0
 public override void DoPickup(Unit unit)
 {
     Program.Instance.Profile.AvailableMeleeWeapons |= MeleeWeapons.Spear;
     base.DoPickup(unit);
     new DialogScript
     {
         Title = "Spear!",
         Text = "You've picked up a spear! You can select this weapon the next time you start a map.",
     }.TryStartPerform();
 }
Exemplo n.º 20
0
 void Mechanics_UnitKilled(Unit obj, Unit perp, Script script)
 {
     if(Units.IsInGroup(obj))
     {
         if (Ability != null && Ability.IsAssignableFrom(script.GetType()))
             KilledWithAbilityScript.TryStartPerform();
         else
         {
             if(KilledWithOtherAbilityScript != null)
                 KilledWithOtherAbilityScript.TryStartPerform();
         }
         nUsed++;
         if (NUses >= 0 && nUsed >= NUses)
             TryEndPerform(false);
     }
 }
Exemplo n.º 21
0
 public virtual float AIPriority(Unit performer, Vector3 targetPosition, Destructible targetEntity)
 {
     return 1;
 }