internal static Rat CloneRat(Rat firstRat) { throw new NotImplementedException(); }
private static void SendMessage(string message, Rat rat) { SendMessage(message, rat.hostSock); }
public Shoot(Rat rat, AttackableObject enemy) : base(rat) { this.enemy = enemy; OnStart(); }
private static void questEvenement(Evenement evenement, Rat rat, Dragon dragon, Spider spider, Bear bear, Personnage personnage, ItemOnBag itemOnBag) { switch (evenement.Numero) { case "E100": Console.WriteLine(evenement.Numero); break; case "E211": Console.WriteLine(evenement.Numero); break; case "E212": Console.WriteLine(evenement.Numero); break; case "E321": if (rat.IsDead) { Console.WriteLine("E321AV"); } else if (personnage.choisesPath.Contains(evenement.Numero)) { Console.WriteLine("E321AV"); } else { Console.WriteLine("E321"); } break; case "E322": if () { break; } case "E323": break; case "E324": break; case "E431": break; case "E432": break; case "E433": break; case "E434": break; case "E435": break; case "E541": break; case "E542": break; case "E543": break; case "E544": break; case "E651": break; case "E761": break; } }
public void FireRatEntered(Rat rat) { RatEntered?.Invoke(this, rat); }
public override bool Eat(Mobile from) { if (FillHunger(from, FillFactor)) { string tastemsg; int RatChances = (int)Taste; if (Poisoner == null) { if (RatChances > Utility.Random(8)) { BaseCreature rat = new Rat(); rat.MoveToWorld(from.Location, from.Map); switch (Utility.Random(4)) { case 2: { rat.FocusMob = from; rat.AI = AIType.AI_Predator; rat.Say("*Semble jaloux de votre fromage*"); break; } default: { rat.Controlled = true; rat.ControlMaster = from; rat.ControlOrder = OrderType.Come; rat.Say("*Couinant amoureusement près de vous*"); break; } } } string paste = "Vous mangez"; string taste = ""; switch (Paste) { case CheesePaste.Molle: paste = "Vous laissez fondre"; break; case CheesePaste.Normale: paste = "Vous dégustez"; break; case CheesePaste.Dure: paste = "Vous grignottez"; break; } switch (Taste) { case CheeseTaste.Faible: taste = "au goût subtil"; break; case CheeseTaste.Leger: taste = "au goût délicat"; break; case CheeseTaste.Modere: taste = "au goût agréable"; break; case CheeseTaste.Prononce: taste = "au goût bien présent"; break; case CheeseTaste.Fort: taste = "au goût persistant"; break; } tastemsg = String.Format("{0} ce fromage {1}", paste, taste); if (Quality == CheeseQuality.Exceptionnal) { from.Say("*Semble subjugué{0} par le goût de ce fromage*", from.Female ? "e" : ""); } } else { tastemsg = "Le goût de la moisissure vous dégoûte au plus haut point"; from.PlaySound(from.Female ? 813 : 1087); Point3D p = new Point3D(from.Location); switch (from.Direction) { case Direction.North: p.Y--; break; case Direction.South: p.Y++; break; case Direction.East: p.X++; break; case Direction.West: p.X--; break; case Direction.Right: p.X++; p.Y--; break; case Direction.Down: p.X++; p.Y++; break; case Direction.Left: p.X--; p.Y++; break; case Direction.Up: p.X--; p.Y--; break; default: break; } p.Z = from.Map.GetAverageZ(p.X, p.Y); bool canFit = Server.Spells.SpellHelper.AdjustField(ref p, from.Map, 12, false); if (canFit) { Puke puke = new Puke(); puke.Map = from.Map; puke.Location = p; } from.Say("*Recrache le fromage, l'air malade*"); } from.PrivateOverheadMessage(MessageType.Regular, 0x3B2, false, tastemsg, from.NetState); // Play a random "eat" sound from.PlaySound(Utility.Random(0x3A, 3)); if (from.Body.IsHuman && !from.Mounted) { from.Animate(34, 5, 1, true, false, 0); } if (Poison != null) { from.ApplyPoison(Poisoner, Poison); } Consume(); return(true); } return(false); }
static void Main(string[] args) { // Instantiate objects from concrete classes ScottishFold waffles = new ScottishFold("Waffles"); Sphynx cleo = new Sphynx("Cleopatra"); MaineCoon simba = new MaineCoon("Simba"); Mouse minnie = new Mouse("Minnie"); Rat rat = new Rat("PizzaRat"); SoftShellTurtle softie = new SoftShellTurtle("Softie"); SeaTurtle wen = new SeaTurtle("Wen"); // Display properties and behaviors of all objects. Categorize them in two main loops. Concrete animals inheriting from the Cat class, Turtle class, and Rodent Class. var cats = new List <Cat> { waffles, cleo, simba }; Console.WriteLine("********************************** WELCOME TO MY CAT$$$$$$$$$$ *************************************"); foreach (var cat in cats) { Console.WriteLine($"Hello, my name is {cat.Name}. I'm a {cat.GetType().Name}."); Console.WriteLine($"Endoskeleton: {cat.Endoskeleton}"); Console.WriteLine($"Brain: {cat.Brain}"); Console.WriteLine($"Avg. Life Span in Years: {cat.AvgLifeSpanInYears}"); Console.WriteLine($"Ear type: {cat.Ears}"); Console.WriteLine($"Cuteness: {cat.Cuteness}"); Console.WriteLine($"Sleeping Pattern: {cat.Sleeps()}"); Console.WriteLine($"Activity: {cat.Plays()}"); Console.WriteLine($"Demeanor: {cat.GetDemeanor()}"); Console.WriteLine($"Has Hair: {cat.HairOnSkin}"); Console.WriteLine($"NOTE TO TOURISTS: {cat.ShouldTouristApproach()}"); Console.WriteLine($"ARE WE EDIBLE: {cat.ShouldWeEatThis()}"); Console.WriteLine("------------------------------------------------------------------------------------------------------"); } var rodents = new List <Rodent> { minnie, rat }; Console.WriteLine("**************************************** Rodents *************************************************"); foreach (var rodent in rodents) { Console.WriteLine($"I'm a {rodent.GetType().Name}."); Console.WriteLine($"Endoskelenton: {rodent.Endoskeleton}"); Console.WriteLine($"Brain: {rodent.Brain}"); Console.WriteLine($"Avg. Life Span in Years: {rodent.AvgLifeSpanInYears}."); Console.WriteLine($"Diseased: {rodent.Diseased}"); Console.WriteLine($"Sound: {rodent.MakeSound()}"); Console.WriteLine($"Has Hair: {rodent.HairOnSkin}"); Console.WriteLine($"Blood Temperature: {rodent.BloodTemperature()}"); Console.WriteLine($"ARE WE EDIBLE: {rodent.ShouldWeEatThis()}"); Console.WriteLine($"GROWS UNTIL: {rodent.GrowsUntil()}"); Console.WriteLine("------------------------------------------------------------------------------------------------------"); } var turtles = new List <Turtle> { softie, wen }; Console.WriteLine("**************************************** TURTLE$ *************************************************"); foreach (var turtle in turtles) { // Is there any way I can get the property from this turtle object's derived type SeaTurtle or SoftShellTurtle? // Is there any way I can force it to be a derived type at runtime? {turtle.Name} gives me red squigglies because I never gave implemented a name property in the abstract Turtle class. I only did that in derived classes. // I know there's a way to extract derived types from a collection with LINQ, but that means generating an entirely new collection of the subtype and iterating over that subtype collection. I'm wondering if there's a type casting we can do to extract a derived type from a base type. Console.WriteLine($"I'm a {turtle.GetType().Name}."); Console.WriteLine($"Endoskelenton: {turtle.VertebrateGretting()}"); Console.WriteLine($"Brain: {turtle.Brain}"); Console.WriteLine($"Moving Speed: {turtle.MovingSpeed}."); Console.WriteLine($"Skin Type: {turtle.GetSkinType()}"); Console.WriteLine($"Blood Temperature: {turtle.BloodTemperature()}"); Console.WriteLine($"NOTE TO TOURISTS: {turtle.ShouldTouristApproach()}"); Console.WriteLine($"ARE WE EDIBLE: {turtle.ShouldWeEatThis()}"); Console.WriteLine($"Fatty Meat: {turtle.FattyMeat}"); Console.WriteLine("------------------------------------------------------------------------------------------------------"); } }
public void FireNotifyRat(object sender, Rat whichRat) { NotifyRat?.Invoke(sender, whichRat); }
public virtual int Defend(Rat rat) { return(Strategy(rat)); }
public Capture(Rat rat) : base(rat) { OnStart(); }
public Character GetEnemy(int id) { Character nextChar; switch (id) { //Low level case 100: nextChar = new Bat(); return(nextChar); case 101: nextChar = new Rat(); return(nextChar); case 102: nextChar = new Kobold(); return(nextChar); case 103: nextChar = new Slime(); return(nextChar); case 104: nextChar = new Farmer(); return(nextChar); case 105: nextChar = new Imp(); return(nextChar); case 106: nextChar = new Zombie(); return(nextChar); case 107: nextChar = new Phantom(); return(nextChar); case 108: nextChar = new Goblin(); return(nextChar); case 109: nextChar = new Witch(); return(nextChar); //Mid level case 110: nextChar = new Harpy(); return(nextChar); case 111: nextChar = new Elemental(); return(nextChar); case 112: nextChar = new Nymph(); return(nextChar); case 113: nextChar = new Vampire(); return(nextChar); case 114: nextChar = new Lamia(); return(nextChar); case 115: nextChar = new Qilin(); return(nextChar); case 116: nextChar = new Unicorn(); return(nextChar); case 117: nextChar = new Jinn(); return(nextChar); case 118: nextChar = new Xorn(); return(nextChar); case 119: nextChar = new Antlion(); return(nextChar); //High level case 120: nextChar = new Yeti(); return(nextChar); case 121: nextChar = new Orc(); return(nextChar); case 122: nextChar = new Minotaur(); return(nextChar); case 123: nextChar = new Troll(); return(nextChar); case 124: nextChar = new Cyclop(); return(nextChar); case 125: nextChar = new Drake(); return(nextChar); default: nextChar = new Slime(); return(nextChar); } }
/// <summary> /// Generates the monsters for the map /// </summary> protected void AddRandomMonster(Rectangle area) { if (type == MapType.dungeon) { int mt = rnd.Next(1, 4); Actor m = null; if (mt == 1) m = new Kobold(1, new Vector2(rnd.Next(area.Left, area.Right) + 0.5f, rnd.Next(area.Top, area.Bottom) + 0.5f)); else if (mt == 2) m = new Rat(1, new Vector2(rnd.Next(area.Left, area.Right) + 0.5f, rnd.Next(area.Top, area.Bottom) + 0.5f)); else if (mt == 3) m = new Goblin(1, new Vector2(rnd.Next(area.Left, area.Right) + 0.5f, rnd.Next(area.Top, area.Bottom) + 0.5f)); if (m != null) map.AddEntity(m); } }
public void TestMethod3() { Rat r = new Rat(1, 0); }
public void TestMethod1() { Rat r = new Rat(3, 6); Assert.AreEqual("1/2", r.ToString()); }
public ApproachEnemy(Rat rat, Rat enemy) : base(rat) { this.enemy = enemy; OnStart(); }
public override void RatInit(Rat context) { }
public override void Damage(Mobile m) { base.Damage(m); if (m.Alive) { Item item = m.FindItemOnLayer(Layer.OuterTorso); if (item is GMRobe) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); } else { // Forest noises if (Utility.RandomDouble() < 0.008) { m.PlaySound(Utility.RandomList(0x000, 0x001, 0x002)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Bird chirps if (Utility.RandomDouble() < 0.002) { m.PlaySound(Utility.RandomList(0x094, 0x095, 0x096, 0x097, 0x0D1, 0x0D2)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Cricket noises if (Utility.RandomDouble() < 0.003) { m.PlaySound(Utility.RandomList(0x00A, 0x00B)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Turdy Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x1 = m.X + 8; int y1 = m.Y + 8; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature turdyencounter; switch (Utility.Random(2)) { default: case 0: turdyencounter = new Turdy(); break; case 1: turdyencounter = new Turdy(); break; } turdyencounter.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); turdyencounter.Combatant = m; AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteTurdyEncounter), turdyencounter); } } } // Turdy Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x2 = m.X - 8; int y2 = m.Y - 8; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature turdyencounter; switch (Utility.Random(2)) { default: case 0: turdyencounter = new Turdy(); break; case 1: turdyencounter = new Turdy(); break; } turdyencounter.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); turdyencounter.Combatant = m; AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteTurdyEncounter), turdyencounter); } } } // Random Encounter 1 if (Utility.RandomDouble() < 0.0002) { if (m.Map == Map.Malas) { int x1 = m.X + 8; int y1 = m.Y + 8; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature encounterb; switch (Utility.Random(2)) { default: case 0: encounterb = new AutumnwoodAdventurer(); break; case 1: encounterb = new AutumnwoodAdventurer(); break; } encounterb.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterB), encounterb); } } } // Random Encounter 2 if (Utility.RandomDouble() < 0.0002) { if (m.Map == Map.Malas) { int x2 = m.X - 8; int y2 = m.Y - 8; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature encounterb; switch (Utility.Random(2)) { default: case 0: encounterb = new AutumnwoodAdventurer(); break; case 1: encounterb = new AutumnwoodAdventurer(); break; } encounterb.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterB), encounterb); } } } // Tamable Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x1 = m.X + 8; int y1 = m.Y + 8; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature tameable; switch (Utility.Random(23)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new Boar(); break; case 2: tameable = new BlackBear(); break; case 3: tameable = new Bull(); break; case 4: tameable = new Chicken(); break; case 5: tameable = new Cow(); break; case 6: tameable = new ForestBat(); break; case 7: tameable = new Goat(); break; case 8: tameable = new GreatHart(); break; case 9: tameable = new GreenSlime(); break; case 10: tameable = new GreySquirrel(); break; case 11: tameable = new GreyWolfPup(); break; case 12: tameable = new Hind(); break; case 13: tameable = new Horse(); break; case 14: tameable = new LargeFrog(); break; case 15: tameable = new Ogumo(); break; case 16: tameable = new Panther(); break; case 17: tameable = new Pig(); break; case 18: tameable = new Rabbit(); break; case 19: tameable = new Rat(); break; case 20: tameable = new RhinoBeetle(); break; case 21: tameable = new RunningPants(); break; case 22: tameable = new Sheep(); break; } tameable.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteTameable), tameable); } } } // Tamable Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x2 = m.X - 8; int y2 = m.Y - 8; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature tameable; switch (Utility.Random(23)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new Boar(); break; case 2: tameable = new BlackBear(); break; case 3: tameable = new Bull(); break; case 4: tameable = new Chicken(); break; case 5: tameable = new Cow(); break; case 6: tameable = new ForestBat(); break; case 7: tameable = new Goat(); break; case 8: tameable = new GreatHart(); break; case 9: tameable = new GreenSlime(); break; case 10: tameable = new GreySquirrel(); break; case 11: tameable = new GreyWolfPup(); break; case 12: tameable = new Hind(); break; case 13: tameable = new Horse(); break; case 14: tameable = new LargeFrog(); break; case 15: tameable = new Ogumo(); break; case 16: tameable = new Panther(); break; case 17: tameable = new Pig(); break; case 18: tameable = new Rabbit(); break; case 19: tameable = new Rat(); break; case 20: tameable = new RhinoBeetle(); break; case 21: tameable = new RunningPants(); break; case 22: tameable = new Sheep(); break; } tameable.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteTameable), tameable); } } } // Random Treasure Chest 1 if (Utility.RandomDouble() < 0.0005) { if (m.Map == Map.Malas) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseContainer treasurechest; if (m.Skills.Tracking.Base > 14.9) { switch (Utility.Random(2)) { default: case 0: treasurechest = new AutumnwoodTreasureChest1(); break; case 1: treasurechest = new AutumnwoodTreasureChest1(); break; } treasurechest.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(5.0), new TimerStateCallback(DeleteTreasureChest), treasurechest); } } } } // Random Treasure Chest 2 if (Utility.RandomDouble() < 0.0005) { if (m.Map == Map.Malas) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseContainer treasurechest; if (m.Skills.Tracking.Base > 14.9) { switch (Utility.Random(2)) { default: case 0: treasurechest = new AutumnwoodTreasureChest1(); break; case 1: treasurechest = new AutumnwoodTreasureChest1(); break; } treasurechest.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(5.0), new TimerStateCallback(DeleteTreasureChest), treasurechest); } } } } } } }
public override void OnNoButton() { Rat.SetAnimationState(Rat.AvailableAnimationStates[typeof(Idle)]); }
public Move(Rat rat) : base(rat) { OnStart(); }
public void UpdateRat(Rat rat) { RatUpdate?.Invoke(this, rat); }
public abstract void RatMove(Rat context);
public override void Damage(Mobile m) { base.Damage(m); if (m.Alive) { Item item = m.FindItemOnLayer(Layer.OuterTorso); if (item is GMRobe) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); } else if (item is GMRobeExplosion) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.PlaySound(Utility.RandomList(0x307, 0x308)); } else if (item is GMRobeHoly) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.FixedParticles(0x375A, 1, 30, 9966, 88, 2, EffectLayer.Head); m.FixedParticles(0x37B9, 1, 30, 9502, 85, 3, EffectLayer.Head); m.FixedParticles(0x376A, 1, 31, 9961, 80, 0, EffectLayer.Waist); m.FixedParticles(0x37C4, 1, 31, 9502, 88, 2, EffectLayer.Waist); } else if (item is GMRobeFarts) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.PlaySound(Utility.RandomList(792, 1064)); } else if (item is GMRobeTrailfire) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot); } else { if (m.Title == "the Running Pants") { if (m.Str <= 100) { if (Utility.RandomDouble() < 0.0003) { m.Str += 1; m.BoltEffect(0x480); m.PlaySound(0x5CE); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } } } // Wind if (Utility.RandomDouble() < 0.002) { m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } if (Utility.RandomDouble() < 0.002) { m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } if (m.Kills >= 5) { // Wasteland Mercenary Ambush if (Utility.RandomDouble() < 0.005) { if (m.Map == Map.Malas) { int x1 = m.X + 20; int y1 = m.Y + 20; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature wastelandmercenary = new WastelandMercenary(); wastelandmercenary.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); wastelandmercenary.Combatant = m; wastelandmercenary.PlaySound(0x220); // Earthquake m.PlaySound(0x5CE); wastelandmercenary.BoltEffect(0x480); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(30.0), new TimerStateCallback(DeleteWastelandMercenary), wastelandmercenary); } } // Wasteland Mercenary 2 if (Utility.RandomDouble() < 0.005) { if (m.Map == Map.Malas) { int x2 = m.X - 20; int y2 = m.Y - 20; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature wastelandmercenary = new WastelandMercenary(); wastelandmercenary.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); wastelandmercenary.Combatant = m; wastelandmercenary.PlaySound(0x220); // Earthquake m.PlaySound(0x5CE); wastelandmercenary.BoltEffect(0x480); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(30.0), new TimerStateCallback(DeleteWastelandMercenary), wastelandmercenary); } } } } } // Dragon Encounter 1 if (Utility.RandomDouble() < 0.0001) { if (m.Map == Map.Malas) { int x1 = m.X + 15; int y1 = m.Y + 15; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature dragonencounter; switch (Utility.Random(2)) { default: case 0: dragonencounter = new BlackDragon(); break; case 1: dragonencounter = new BlackDragon(); break; } dragonencounter.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); dragonencounter.Combatant = m; m.PlaySound(0x656); // risingColossus AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(30.0), new TimerStateCallback(DeleteDragonEncounter), dragonencounter); } } } // Dragon Encounter 2 if (Utility.RandomDouble() < 0.0001) { if (m.Map == Map.Malas) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature dragonencounter; switch (Utility.Random(8)) { default: case 0: dragonencounter = new BlackDragon(); break; case 1: dragonencounter = new BlackDragon(); break; } dragonencounter.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); dragonencounter.Combatant = m; m.PlaySound(0x656); // risingColossus AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(30.0), new TimerStateCallback(DeleteDragonEncounter), dragonencounter); } } } // Random Encounter 1 if (Utility.RandomDouble() < 0.00002) { if (m.Map == Map.Malas) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature encountera; switch (Utility.Random(15)) { default: case 0: encountera = new Almiraj(); break; case 1: encountera = new BlackAntAmbusher(); break; case 2: encountera = new FaerieBeetleCollector(); break; case 3: encountera = new GazerLarva(); break; case 4: encountera = new Gizzard(); break; case 5: encountera = new GreenSlime(); break; case 6: encountera = new HordeMinion(); break; case 7: encountera = new Mongbat(); break; case 8: encountera = new Orc(); break; case 9: encountera = new Ratman(); break; case 10: encountera = new StreamingWisp(); break; case 11: encountera = new SwampVine(); break; case 12: encountera = new Tokoloshe(); break; case 13: encountera = new VerdantSprite(); break; case 14: encountera = new WaterLizard(); break; } encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Random Encounter 2 if (Utility.RandomDouble() < 0.00002) { if (m.Map == Map.Malas) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature encountera; switch (Utility.Random(15)) { default: case 0: encountera = new Almiraj(); break; case 1: encountera = new BlackAntAmbusher(); break; case 2: encountera = new FaerieBeetleCollector(); break; case 3: encountera = new GazerLarva(); break; case 4: encountera = new Gizzard(); break; case 5: encountera = new GreenSlime(); break; case 6: encountera = new HordeMinion(); break; case 7: encountera = new Mongbat(); break; case 8: encountera = new Orc(); break; case 9: encountera = new Ratman(); break; case 10: encountera = new StreamingWisp(); break; case 11: encountera = new SwampVine(); break; case 12: encountera = new Tokoloshe(); break; case 13: encountera = new VerdantSprite(); break; case 14: encountera = new WaterLizard(); break; } encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Tamable Encounter 1 if (Utility.RandomDouble() < 0.00002) { if (m.Map == Map.Malas) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature tameable; switch (Utility.Random(23)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new Boar(); break; case 2: tameable = new BrownBear(); break; case 3: tameable = new Bull(); break; case 4: tameable = new Chicken(); break; case 5: tameable = new Cow(); break; case 6: tameable = new ForestBat(); break; case 7: tameable = new Goat(); break; case 8: tameable = new GreatHart(); break; case 9: tameable = new GreenSlime(); break; case 10: tameable = new GreySquirrel(); break; case 11: tameable = new GreyWolfPup(); break; case 12: tameable = new Hind(); break; case 13: tameable = new Horse(); break; case 14: tameable = new LargeFrog(); break; case 15: tameable = new Ogumo(); break; case 16: tameable = new Panther(); break; case 17: tameable = new Pig(); break; case 18: tameable = new Rabbit(); break; case 19: tameable = new Rat(); break; case 20: tameable = new RhinoBeetle(); break; case 21: tameable = new RunningPants(); break; case 22: tameable = new Sheep(); break; } tameable.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteTameable), tameable); } } } // Tamable Encounter 2 if (Utility.RandomDouble() < 0.00002) { if (m.Map == Map.Malas) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature tameable; switch (Utility.Random(23)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new Boar(); break; case 2: tameable = new BrownBear(); break; case 3: tameable = new Bull(); break; case 4: tameable = new Chicken(); break; case 5: tameable = new Cow(); break; case 6: tameable = new ForestBat(); break; case 7: tameable = new Goat(); break; case 8: tameable = new GreatHart(); break; case 9: tameable = new GreenSlime(); break; case 10: tameable = new GreySquirrel(); break; case 11: tameable = new GreyWolfPup(); break; case 12: tameable = new Hind(); break; case 13: tameable = new Horse(); break; case 14: tameable = new LargeFrog(); break; case 15: tameable = new Ogumo(); break; case 16: tameable = new Panther(); break; case 17: tameable = new Pig(); break; case 18: tameable = new Rabbit(); break; case 19: tameable = new Rat(); break; case 20: tameable = new RhinoBeetle(); break; case 21: tameable = new RunningPants(); break; case 22: tameable = new Sheep(); break; } tameable.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteTameable), tameable); } } } // Random Adventurer 1 if (Utility.RandomDouble() < 0.00002) { if (m.Map == Map.Malas) { int x1 = m.X + 15; int y1 = m.Y + 15; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature friendlyencounter; switch (Utility.Random(2)) { default: case 0: friendlyencounter = new ZaythalorHuman(); break; case 1: friendlyencounter = new ZaythalorSunElf(); break; case 2: friendlyencounter = new ZaythalorMoonElf(); break; } friendlyencounter.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteFriendlyEncounter), friendlyencounter); } } } // Random Adventurer 2 if (Utility.RandomDouble() < 0.00002) { if (m.Map == Map.Malas) { int x2 = m.X - 15; int y2 = m.Y - 15; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature friendlyencounter; switch (Utility.Random(2)) { default: case 0: friendlyencounter = new ZaythalorHuman(); break; case 1: friendlyencounter = new ZaythalorSunElf(); break; case 2: friendlyencounter = new ZaythalorMoonElf(); break; } friendlyencounter.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteFriendlyEncounter), friendlyencounter); } } } // Random Treasure Chest 1 if (Utility.RandomDouble() < 0.0005) { if (m.Map == Map.Malas) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseContainer treasurechest; if (m.Skills.Tracking.Base > 4.9) { switch (Utility.Random(2)) { default: case 0: treasurechest = new ZaythalorForestTreasureChest1(); break; case 1: treasurechest = new ZaythalorForestTreasureChest1(); break; } treasurechest.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(5.0), new TimerStateCallback(DeleteTreasureChest), treasurechest); } } } } // Random Treasure Chest 2 if (Utility.RandomDouble() < 0.0005) { if (m.Map == Map.Malas) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseContainer treasurechest; if (m.Skills.Tracking.Base > 4.9) { switch (Utility.Random(2)) { default: case 0: treasurechest = new ZaythalorForestTreasureChest1(); break; case 1: treasurechest = new ZaythalorForestTreasureChest1(); break; } treasurechest.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(5.0), new TimerStateCallback(DeleteTreasureChest), treasurechest); } } } } // Random Dead Body 1 if (Utility.RandomDouble() < 0.0003) { if (m.Map == Map.Malas) { int x1 = m.X + 10; int y1 = m.Y + 10; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseContainer deadbody; switch (Utility.Random(4)) { default: case 0: deadbody = new UnknownBardSkeletonZaythalor(); break; case 1: deadbody = new UnknownMageSkeletonZaythalor(); break; case 2: deadbody = new UnknownRogueSkeletonZaythalor(); break; case 3: deadbody = new UnknownRogueSkeletonZaythalor(); break; } deadbody.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(5.0), new TimerStateCallback(DeleteDeadBody), deadbody); } } } // Random Dead Body 2 if (Utility.RandomDouble() < 0.0003) { if (m.Map == Map.Malas) { int x2 = m.X - 10; int y2 = m.Y - 10; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseContainer deadbody; switch (Utility.Random(4)) { default: case 0: deadbody = new UnknownBardSkeletonZaythalor(); break; case 1: deadbody = new UnknownMageSkeletonZaythalor(); break; case 2: deadbody = new UnknownRogueSkeletonZaythalor(); break; case 3: deadbody = new UnknownRogueSkeletonZaythalor(); break; } deadbody.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(5.0), new TimerStateCallback(DeleteDeadBody), deadbody); } } } PlayerMobile player1 = m as PlayerMobile; QuestSystem qs1 = player1.Quest; if (qs1 is StolenNecklaceQuest) { if (qs1.IsObjectiveInProgress(typeof(ReturnStolenNecklaceObjective))) { m.Send(Network.PlayMusic.GetInstance(MusicName.StygianAbyss)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } } PlayerMobile player = m as PlayerMobile; QuestSystem qs = player.Quest; if (qs is StolenNecklaceQuest) { if (qs.IsObjectiveInProgress(typeof(ReturnStolenNecklaceObjective))) { // Brigand Ambush if (Utility.RandomDouble() < 0.015) { if (m.Map == Map.Malas) { int x1 = m.X + 20; int y1 = m.Y + 20; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature brigandmale = new BrigandMaleQuest(); brigandmale.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); brigandmale.Combatant = m; m.Send(Network.PlayMusic.GetInstance(MusicName.StygianAbyss)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteBrigandMale), brigandmale); } } } // Brigand Ambush 2 if (Utility.RandomDouble() < 0.015) { if (m.Map == Map.Malas) { int x2 = m.X - 20; int y2 = m.Y - 20; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature brigandfemale = new BrigandFemaleQuest(); brigandfemale.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); brigandfemale.Combatant = m; m.Send(Network.PlayMusic.GetInstance(MusicName.StygianAbyss)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteBrigandFemale), brigandfemale); } } } } } else if (qs is StaffOfFlyingMonkeysQuest) { if (qs.IsObjectiveInProgress(typeof(EscapeObjective))) { // Mongbat Ambush if (Utility.RandomDouble() < 0.015) { if (m.Map == Map.Malas) { int x1 = m.X + 20; int y1 = m.Y + 20; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature cavernmongbatberserker = new CavernMongbatBerserkerQuest(); cavernmongbatberserker.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); cavernmongbatberserker.Combatant = m; m.Send(Network.PlayMusic.GetInstance(MusicName.Medieval)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteCavernMongbatBerserkerQuest), cavernmongbatberserker); } } } // Mongbat Ambush 2 if (Utility.RandomDouble() < 0.015) { if (m.Map == Map.Malas) { int x2 = m.X - 20; int y2 = m.Y - 20; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature cavernmongbatberserker = new CavernMongbatBerserkerQuest(); cavernmongbatberserker.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); cavernmongbatberserker.Combatant = m; m.Send(Network.PlayMusic.GetInstance(MusicName.Medieval)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteCavernMongbatBerserkerQuest), cavernmongbatberserker); } } } } } } } }
public abstract void RatInit(Rat context);
public object ObjRef() { var tag = (SerializationCode)Byte(); if (Config.SerTrace) { Console.WriteLine("Reading {0} from {1}...", tag, rpointer - 1); } int i, j; switch (tag) { case SerializationCode.Null: return(null); case SerializationCode.ForeignRef: i = Int(); j = Int(); return(unit_map[i].bynum[j]); case SerializationCode.SelfRef: i = Int(); return(unit.bynum[i]); case SerializationCode.NewUnitRef: return(LoadNewUnit()); case SerializationCode.RuntimeUnit: return(RuntimeUnit.Thaw(this)); case SerializationCode.SubInfo: return(SubInfo.Thaw(this)); case SerializationCode.STable: return(STable.Thaw(this)); case SerializationCode.StashEnt: return(StashEnt.Thaw(this)); case SerializationCode.Rat: return(Rat.Thaw(this)); case SerializationCode.FatRat: return(FatRat.Thaw(this)); case SerializationCode.Complex: return(Complex.Thaw(this)); case SerializationCode.BigInteger: return(BigInteger.Thaw(this)); case SerializationCode.VarDeque: return(VarDeque.Thaw(this)); case SerializationCode.VarHash: return(VarHash.Thaw(this)); case SerializationCode.DispatchEnt: return(DispatchEnt.Thaw(this)); //case SerializationCode.RxFrame: // return RxFrame.Thaw(this); case SerializationCode.P6how: return(P6how.Thaw(this)); case SerializationCode.CC: return(CC.Thaw(this)); case SerializationCode.AltInfo: return(AltInfo.Thaw(this)); case SerializationCode.Signature: return(Signature.Thaw(this)); case SerializationCode.Parameter: return(Parameter.Thaw(this)); case SerializationCode.ReflectObj: return(ReflectObj.Thaw(this)); case SerializationCode.P6opaque: return(P6opaque.Thaw(this)); case SerializationCode.Frame: return(Frame.Thaw(this)); //Cursor, case SerializationCode.String: return(Register(String())); case SerializationCode.ArrP6any: return(RefsARegister <P6any>()); case SerializationCode.ArrVariable: return(RefsARegister <Variable>()); case SerializationCode.ArrString: return(RefsARegister <string>()); case SerializationCode.ArrCC: return(RefsARegister <CC>()); case SerializationCode.Boolean: return(Register(Byte() != 0)); case SerializationCode.Int: return(Register(Int())); case SerializationCode.Double: return(Register(Double())); case SerializationCode.Type: return(Register(Type.GetType(String(), true))); case SerializationCode.SimpleVariable: case SerializationCode.SimpleVariable_1: case SerializationCode.SimpleVariable_2: case SerializationCode.SimpleVariable_3: return(SimpleVariable.Thaw(this, (int)tag - (int)SerializationCode.SimpleVariable)); case SerializationCode.SubstrLValue: return(SubstrLValue.Thaw(this)); case SerializationCode.TiedVariable: return(TiedVariable.Thaw(this)); case SerializationCode.SubViviHook: return(SubViviHook.Thaw(this)); case SerializationCode.ArrayViviHook: return(ArrayViviHook.Thaw(this)); case SerializationCode.NewArrayViviHook: return(NewArrayViviHook.Thaw(this)); case SerializationCode.HashViviHook: return(HashViviHook.Thaw(this)); case SerializationCode.NewHashViviHook: return(NewHashViviHook.Thaw(this)); case SerializationCode.LADNone: return(Register(new LADNone())); case SerializationCode.LADNull: return(Register(new LADNull())); case SerializationCode.LADDot: return(Register(new LADDot())); case SerializationCode.LADDispatcher: return(Register(new LADDispatcher())); case SerializationCode.LADImp: return(Register(new LADImp())); case SerializationCode.LADStr: return(LADStr.Thaw(this)); case SerializationCode.LADStrNoCase: return(LADStrNoCase.Thaw(this)); case SerializationCode.LADMethod: return(LADMethod.Thaw(this)); case SerializationCode.LADParam: return(LADParam.Thaw(this)); case SerializationCode.LADQuant: return(LADQuant.Thaw(this)); case SerializationCode.LADSequence: return(LADSequence.Thaw(this)); case SerializationCode.LADAny: return(LADAny.Thaw(this)); case SerializationCode.LADCC: return(LADCC.Thaw(this)); default: throw new ThawException("unexpected object tag " + tag); } }
public ApproachCapturePoint(Rat rat) : base(rat) { OnStart(); }
public ApproachRanged(Rat rat, Rat enemy) : base(rat, enemy) { }
void SetRatTarget(GameObject rat, Vector3 target) { Rat component = rat.GetComponent <Rat>(); component.SetTargetFood(target); }
private static void ReceiveCallback(IAsyncResult AR) { Socket socket = (Socket)AR.AsyncState; try { if (socket.Connected) { int received = socket.EndReceive(AR); byte[] dataBuf = new byte[received]; Array.Copy(_buffer, dataBuf, received); string text = Encoding.ASCII.GetString(dataBuf); /* HANDLE REQUESTS */ /** If the client sends a message with the info. header, * then add him to the known clients; where * infoHeader: `INFO hostName hostAddr` */ string response = string.Empty; if (text.ToLower().Split()[0] == "info") { _rats.Add(new Rat(socket, text)); response = "INFO Rat added to the pak"; SendMessage(response, socket); } /* Check for a file header with a non-empty message, where * File header: `FILE fileName headerSize textString` */ if (text.ToLower().Split()[0] == "file" && text.ToLower().Split()[2] != "0") { string fileName = text.ToLower().Split()[1]; int headerSize = Convert.ToInt32(text.ToLower().Split()[2]); string filePath = Directory.GetCurrentDirectory() + "\\" + fileName; /* Remove the the header from the message */ text = text.Remove(0, headerSize); File.WriteAllText(@filePath, text); // puts( "Wrote: " + text ); text = fileName + " was downloaded locally @ " + filePath; } puts(Rat.daRatSays(text, socket)); socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket); } } /* Handle the case of a socket suddenly disconnecting. * *might catch other sokcetExceptions at the time of disconnecting... */ catch (SocketException) { puts("Client disconnected..."); socket.Close(); _clientSockets.Remove(socket); Rat toBeRemoved = null; foreach (var rat in _rats) { if (socket == rat.hostSock) { toBeRemoved = rat; } } if (_rats.Contains(toBeRemoved)) { _rats.Remove(toBeRemoved); } _serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), null); } }
public override void RatMove(Rat context) { if (context.alliesNearby == 0) { context.currentMoveState = new RatRunAway(); } if (context.LastHeroPosX == -1) { context.currentMoveState = new RatIdle(); } else { LevelGenerator.Point startPoint = new LevelGenerator.Point(); startPoint.X = 5; startPoint.Y = 5; LevelGenerator.Point endPoint = new LevelGenerator.Point(); endPoint.X = context.LastHeroPosX - context.posX + 5; endPoint.Y = context.LastHeroPosY - context.posY + 5; List <Node> path = null; Stopwatch sw; if (GameManager._instance.GetComponent <GameDataManager>().DebugConsoleEnabled == 1) { if (GameManager._instance.GetComponent <GameDataManager>().UsingBreadthAlgorithm == 1) { sw = Stopwatch.StartNew(); for (int i = 0; i < 100; i++) { if (context.currentMap.enemyPathFindingA.FindPathBreadth(startPoint, endPoint, context.currentMap.GenerateTruePathCosts(context.posX - 5, context.posY - 5, context.posX + 5, context.posY + 5, context), 5, 5) is null) { return; } } sw.Stop(); context.GetComponent <Enemy>().turnManager.AddLog("Enemy " + context.gameObject.GetInstanceID().ToString() + " found path with BFS in: " + sw.Elapsed.Ticks + " ticks", sw.Elapsed.Ticks.ToString() + " "); } sw = Stopwatch.StartNew(); for (int i = 0; i < 100; i++) { path = context.currentMap.enemyPathFindingA.FindPath(startPoint, endPoint, context.currentMap.GenerateTruePathCosts(context.posX - 5, context.posY - 5, context.posX + 5, context.posY + 5, context), 5, 5); } if (path is null) { return; } sw.Stop(); context.GetComponent <Enemy>().turnManager.AddLog("Enemy " + context.gameObject.GetInstanceID().ToString() + " found path in: " + sw.Elapsed.Ticks + " ticks", sw.Elapsed.Ticks.ToString() + "\n"); //10000 ticks is 1 ms } else { for (int i = 0; i < 100; i++) { path = context.currentMap.enemyPathFindingA.FindPath(startPoint, endPoint, context.currentMap.GenerateTruePathCosts(context.posX - 5, context.posY - 5, context.posX + 5, context.posY + 5, context), 5, 5); } if (path is null) { return; } } int subtractAmmount; if (path.Count > 1) { subtractAmmount = 2; } else { subtractAmmount = 1; } if (path.Count > 1) { if (path[path.Count - subtractAmmount].position.X > startPoint.X) { context.MoveDirection(Character.Directions.right); } if (path[path.Count - subtractAmmount].position.X < startPoint.X) { context.MoveDirection(Character.Directions.left); } if (path[path.Count - subtractAmmount].position.Y > startPoint.Y) { context.MoveDirection(Character.Directions.up); } if (path[path.Count - subtractAmmount].position.Y < startPoint.Y) { context.MoveDirection(Character.Directions.down); } } } }
private static void SendLoop() { /* theChosenOne = the selected client */ Rat theChosenOne = null; while (true) { Console.Write("> "); string input = Console.ReadLine().Trim(); if (input == "break" || input == "exit") { break; } else if (input == "help") { Console.Write(_help); } else if (input == "list" || input == "rats") { foreach (var rat in _rats) { Console.WriteLine(rat); } } else if (input.Split()[0] == "rat" && input.Split().Length < 3 && _rats.Count >= 1) { if (input.Split().Length == 1) { theChosenOne.selected = false; theChosenOne = null; } else if (Convert.ToInt32(input.Split()[1]) < _rats.Count) { theChosenOne = _rats[Convert.ToInt32(input.Split()[1])]; theChosenOne.selected = true; } else { puts("Rat not found"); } } else if (input.Split()[0] == "upload") { if (input.Split().Length == 1 || input.Split().Length > 2) { puts("Invalid input"); } /* Check if file exists, append the FILE header and send the message */ if (DoesFileExist(input.Split()[1])) { string response = "FILE " + input.Split()[1] + " "; response += FileToString(input.Split()[1]); if (theChosenOne == null) { foreach (var rat in _rats) { SendMessage(response, rat); } } else { SendMessage(response, theChosenOne); } } else { puts("Could not find: " + input.Split()[1]); } } else { /* Send message to either only one or to all rats */ if (theChosenOne == null) { foreach (var rat in _rats) { SendMessage(input, rat); } } else { SendMessage(input, theChosenOne); /* Nuke'em */ if (input == "kill" || input == "black_plague" || input == "terminate") { theChosenOne = null; } } /* Seppuku */ if (input == "black_plague" || input == "terminate") { Environment.Exit(0); } } } }
public override void OnHorizontalAxis(float horizontalAxis) { Rat.SetAnimationState(Rat.AvailableAnimationStates[typeof(Running)]); }