}//fin du Main // ce qui est écrit dans le livre sur chaque substance internal static void LireSubstance(Substances s) { switch (s) { case Substances.dimercaprol: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du nalidixique " + "et du phytoménadione\nPotion B en mélangeant avec du glipizide et du rasburicase\n Potion C en mélangeant avec " + "du sulfacétamide et du nitrofurantoïne"); break; case Substances.glipizide: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du phytoménadione " + "et du nitrofurantoïne\nPotion B en mélangeant avec du dimercaprol et du noramidopyrine\n Potion C en mélangeant avec " + "du sulfacétamide et du nalidixique"); break; case Substances.nalidixique: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du sulfacétamide " + "et du phytoménadione\nPotion B en mélangeant avec du glipizide et du rasburicase\n Potion C en mélangeant avec " + "du noramidopyrine et du nitrofurantoïne"); break; case Substances.nitrofurantoïne: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du glipizide " + "et du sulfaméthizol\nPotion B en mélangeant avec du dimercaprol et du rasburicase\n Potion C en mélangeant avec " + "du sulfacétamide et du nalidixique"); break; case Substances.noramidopyrine: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du nalidixique " + "et du phytoménadione\nPotion B en mélangeant avec du glipizide et du nitrofurantoïne\n Potion C en mélangeant avec " + "du sulfacétamide et du rasburicase"); break; case Substances.phytoménadione: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du nitrofurantoïne " + "et du rasburicase\nPotion B en mélangeant avec du glipizide et du sulfacétamide\n Potion C en mélangeant avec " + "du sulfacétamide et du sulfaméthizol"); break; case Substances.rasburicase: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du sulfaméthizol " + "et du nalidixique\nPotion B en mélangeant avec du glipizide et du phytoménadione\n Potion C en mélangeant avec " + "du sulfacétamide et du nitrofurantoïne"); break; case Substances.sulfacétamide: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du nalidixique " + "et du phytoménadione\nPotion B en mélangeant avec du sulfaméthizol et du rasburicase\n Potion C en mélangeant avec " + "du glipizide et du nitrofurantoïne"); break; case Substances.sulfaméthizol: Console.WriteLine("substance pouvant servir à faire 3 potions :\nPotion A en mélangeant avec du nitrofurantoïne " + "et du glipizide\nPotion B en mélangeant avec du rasburicase et du phytoménadione\n Potion C en mélangeant avec " + "du sulfacétamide et du noramidopyrine"); break; } }
public void CanCreateSubstanceInstance() { var substances = new Substances(); Assert.NotNull(substances); Assert.NotEmpty(substances.StateNames); Assert.Equal(States.Liquid, substances.GetStateValue("Liquid")); Assert.NotEmpty(substances.Get()); Assert.NotEmpty(substances.Get(m => m.State.Equals(States.Liquid))); }
public bool Defier(Joueur pj) { Substances substanceVolee = pj._inventaireSubstances[0]; pj._inventaireSubstances.Remove(substanceVolee); Console.WriteLine(this._nom + " vous a volé le " + substanceVolee + " pour vous défier."); bool abandon = false; bool finCombat = false; while ((finCombat == false) && (abandon == false)) { pj._ptVie -= this._degat; Console.WriteLine(this._nom + " vous attaque. Vous perdez " + this._degat + " points de vie. " + "Il vous reste " + pj._ptVie + " points de vie."); Console.WriteLine("Que voulez-vous faire ?\n1 : Répliquer avec un coup de pied\n2 : Répliquer avec un coup de poing" + "\n3 : Abandonner puis aller reprendre des forces dans la salle de repos"); int choix = int.Parse(Console.ReadLine()); if ((choix == 1) || (choix == 2)) { pj.Defier(this, choix); } if (choix == 3) { abandon = true; } if ((pj._ptVie <= 0) || (this._ptVie <= 0)) { finCombat = true; } } if (this._ptVie == 0) { pj._inventaireSubstances.Add(substanceVolee); Console.WriteLine("Bravo ! Vous avez récupéré la substance qui vous avait été volée !" + " Vous pouvez continuer à préparer la potion."); } else if (abandon == true) { Console.WriteLine("Vous abandonnez et allez vous reposer"); } else { // Appel à la fonction qui quitte le jeu Console.WriteLine("Perdu"); } return(abandon); }
public float this[UrbSubstanceTag Tag] { get { if (Tag == UrbSubstanceTag.All) { return(UsedCapacity); } if (Substances.TryGetValue(Tag, out float val)) { return(val); } return(0.0f); } }
}//fin du Main internal static void LireSubstance(Substances s) { switch (s) { case Substances.dimercaprol: Console.WriteLine("yeah"); break; case Substances.glipizide: Console.WriteLine("yeahoh"); break; case Substances.nalidixique: Console.WriteLine("yeahohoh"); break; } }
// Méthode permettant au bagarreur de défier le joueur en lui volant une de ses substances et en l'attaquant // En entrée : le joueur pj // En sortie : un booléen indiquant si le joueur a abandonné (true si oui) et doit aller en salle de repos internal bool Defier(Joueur pj) { // la bagarreur vole une substance au joueur Substances substanceVolee = pj._inventaireSubstances[0]; pj._inventaireSubstances.Remove(substanceVolee); Console.WriteLine(this._nom + " vous a volé le " + substanceVolee + " pour vous défier."); bool abandon = false; bool finCombat = false; // COMBAT while ((finCombat == false) && (abandon == false)) { pj._ptVie -= this._degat; Console.WriteLine(this._nom + " vous attaque. Vous perdez " + this._degat + " points de vie. " + "Il vous reste " + pj._ptVie + " points de vie."); Console.WriteLine("Que voulez-vous faire ?\n1 : Répliquer avec un coup de pied\n2 : Répliquer avec un coup de poing" + "\n3 : Abandonner puis aller reprendre des forces dans la salle de repos"); int choix = int.Parse(Console.ReadLine()); if ((choix == 1) || (choix == 2)) // si le joueur choisit de répliquer { pj.Defier(this, choix); } if (choix == 3) // si le joueur choisit d'abandonner et de quitter le laboratoire { abandon = true; } if ((pj._ptVie <= 0) || (this._ptVie <= 0)) { finCombat = true; } } // Test : pourquoi le combat s'est il arrêté // Soit le bagarreur n'a plus de vie, le joueur a gagné le combat if (this._ptVie <= 0) { pj._inventaireSubstances.Add(substanceVolee); Console.WriteLine("Bravo ! Vous avez récupéré la substance qui vous avait été volée !" + " Vous pouvez continuer à préparer la potion."); } // Soit le joueur a abandonné else if (abandon == true) { Console.WriteLine("Vous abandonnez et allez vous reposer"); } // Soit le joueur n'a plus de vie, le joueur a perdu la partie else { // FAIRE APPEL A LA FONCTION QUI PERMET DE QUITTER LE JEU Console.WriteLine("Perdu"); } return(abandon); }
static void Main(string[] args) { bool rejouer = false; bool prendlafuite = false; bool gagne = false; do { // Instanciation du personnage joueur Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine("\n\n\n\n\n\n\n\n\n"); Console.WriteLine(" ALCHIMED : EXPERIMENTONS LE FUTUR"); Console.WriteLine(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); Console.ReadKey(); Console.ResetColor(); Console.Clear(); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("Bienvenue dans le jeu ALCHIMED ! Pour la suite vous allez incarner un personnage"); Console.WriteLine("\nVeuillez entrer son prénom"); Console.ResetColor(); string prenom = Console.ReadLine(); titan = new Joueur(prenom, 0, 100); titan._savoirs.Add(Savoirs.Chimie); titan._savoirs.Add(Savoirs.Culture); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("\nVeuillez choisir sa caractéristique principale"); titan.AttribuerCaracteristique(); Console.WriteLine("\nAmusez vous bien !"); Console.ResetColor(); Console.ReadKey(); //Instanciation de l'environnement de jeu // Construction des personnages non joueurs Bagarreur edgar = new Bagarreur("Edgar", 20); // Construction des objets ObjetSpecial ob1 = new ObjetSpecial("un lit", "Que ce lit est douillet...", Effets.regenerateur); ObjetSpecial ob2 = new ObjetSpecial("un poste radio", "Bonne idée, écoutons un peu de musique pour se détendre...", Effets.stress); ObjetSpecial ob3 = new ObjetSpecial("une table avec de la nourriture", "Il y a des smoothies et des gateaux, vous vous régalez !", Effets.vieP); ObjetSpecial ob4 = new ObjetSpecial("des haltères", "Vous pouvez utiliser les haltères pour un petit entraînement du haut du corps.", Effets.force1); ObjetSpecial ob5 = new ObjetSpecial("une presse", "Vous pouvez entraîner le bas de votre corps grâce à la presse !", Effets.force2); ObjetSpecial ob6 = new ObjetSpecial("un tapis de course", "Votre cardio va vite s'améliorer avec cet entraînement !", Effets.force3); Objet ob7 = new Objet("une armoire", "Cette armoire est remplie de toutes sortes de choses..."); Objet ob8 = new Objet("une table basse", "Il y a un tas de journaux et de livres posés ici..."); Objet ob9 = new Objet("une blouse sur le porte manteau", "C'est une très belle blouse ! Je ne sais pas à qui elle est..."); Objet ob10 = new Objet("un tableau", "Ce tableau est magnifique ! On pourrait rester ici des heures à le contempler..."); Objet ob11 = new Objet("une fenêtre", "On a l'impression d'être en pleine nature ici ! Il y a des arbres et des fleurs à perte de vue..."); Objet ob12 = new Objet("une lampe de bureau", "Cette lampe me rappelle celle de ma grand mère..."); Objet ob13 = new Objet("un canapé", "Ce canapé marron a l'air douillet, et il vous tend les bras..."); Contenant ob17 = new Contenant("un livre", "Je me demande ce qu'il y a dans ce livre...", 9, new Substances[9] { Substances.dimercaprol, Substances.glipizide, Substances.nalidixique, Substances.nitrofurantoïne, Substances.noramidopyrine, Substances.phytoménadione, Substances.rasburicase, Substances.sulfacétamide, Substances.sulfaméthizol }); Objet ob14 = new Objet("des paillasses", "Ces paillasses me seront utiles pour mélanger les substances et fabriquer\nle médicament."); Contenant ob15 = new Contenant("une armoire", "C'est génial, cette armoire est remplie de substances chimiques en tous genres...", 9, new Substances [9] { Substances.dimercaprol, Substances.glipizide, Substances.nalidixique, Substances.nitrofurantoïne, Substances.noramidopyrine, Substances.phytoménadione, Substances.rasburicase, Substances.sulfacétamide, Substances.sulfaméthizol }); Contenant ob16 = new Contenant("un carton", "Ce carton a l'air poussiéreux...", new List <Contenant>() { ob17 }); Objet ob18 = new Objet("Charles le squelette", "J'ai pour seule compagnie... Un squelette... Le prends pas mal hein"); Objet ob19 = new Objet("un évier", "Cet évier est si sale..."); Objet ob20 = new Objet("une commode", "Pouah ! Cette commode est rempli de blouses, de masques et de gants usagés..."); Objet ob21 = new Objet("des bocaux", "Le contenu de ces bocaux est... étrange..."); Potion p1 = new Potion("le galafène", "a pour effet blabla", Effets.p_galactumerie, new List <Substances>() { Substances.sulfacétamide, Substances.nalidixique, Substances.glipizide }); // Construction des salles Piece salleRepos = new Piece("la salle de repos", new List <Objet>() { ob1, ob2, ob3 }); Piece salleEntrainement = new Piece("la salle d'entraînement", new List <Objet>() { ob4, ob5, ob6 }); Piece salleEtude = new Piece("la salle d'étude", new List <Objet>() { ob7, ob8, ob9, ob10, ob11, ob12, ob13 }); salleEtude.AttribuerSavoir(); Piece laboratoire = new Piece("le laboratoire", new List <Objet>() { ob14, ob15, ob16, ob18, ob19, ob20, ob21 }); //Construction du Bâtiment Alchimed, enceinte du jeu Alchimed = new List <Piece> { salleRepos, salleEtude, salleEntrainement, laboratoire }; Console.WriteLine("\nEnfin ! La lettre d’Alchimed est arrivée...\n 'Félicitations, vous avez été présélectionné pour " + "intégrer notre prestigieux\n programme ! Nous vous invitons désormais à nous rejoindre afin de vous\n préparer au mieux " + "à la sélection finale. Comme vous le savez, cela consiste\n à la fabrication d’un médicament dans un contexte imposé et un temps imparti.'"); Console.WriteLine("Deux jours après, je me rendais à l’adresse indiquée dans la lettre et me\ntrouvais devant un bâtiment imposant," + " d’un blanc éclatant.\nJe me présentais alors à l'accueil d’Alchimed...\n\n 'Bonjour, bienvenue chez Alchimed ! Vous êtes" + " {0} n’est ce pas ? Je vais\n vous présenter les locaux qui vous ont été attribués et les différents éléments à votre" + " disposition.Vous pourrez rester ici aussi longtemps que nécessaire !\n Suivez-moi...\n\n La première pièce à votre gauche" + " est la salle de repos, où vous pourrez vous\n détendre et vous reposer. Ensuite, la seconde pièce à votre gauche est la\n salle d'étude," + " c'est ici que vous allez pouvoir enrichir votre culture. Sur\n votre droite se trouve la salle d'entraînement, où divers équipements" + " vous\n permettront d'améliorer votre force. Enfin, au boût du couloir se trouve le\n grand Laboratoire. Lorsque vous serez " + "suffisamment entraîné et vous sentirez\n prêt, présentez vous devant l'entrée. C'est là où se déroulera l'épreuve finale" + " Je vous laisse maintenant !'", titan._nom); //Première action du joueur : choisir une pièce à explorer Piece destination = null; int choix; while (!gagne) { //présentation des pièces et analyse du choix du joueur destination = ChoisirPiece(Alchimed, titan); // boucle de choix objet-action dans la pièce courante, la touche b permettant de changer de pièce while ((Console.ReadKey().KeyChar != 'b') && (!prendlafuite)) { //Affichage des objets de la pièce destination.Lister(); //gestion des éventuelles erreurs de saisie choix = VerifSaisie(destination._objets.Count); //interactions avec les objets des pièces autre que le laboratoire if (destination != laboratoire) { titan.DeplacerVersObjet(destination, choix); } //interactions avec les objets du laboratoire else { //Renommage pour plus de clarté Objet elementChoisi = destination._objets.ElementAt(choix - 1); bool estMeuble = destination._objets.ElementAt(choix - 1) is Contenant; //si on a pas choisi un meuble if (!estMeuble) { elementChoisi.AfficheDescription(); } //si c'est un meuble else { //on peut faire un upcast puisqu'on a vérifié que l'objet est un meuble Contenant choisi = (Contenant)destination._objets.ElementAt(choix - 1); //le meuble choisi contient plusieurs objets avec lesquel on peut interagir Console.WriteLine("\n\n" + choisi); // choisi.AfficheDescription(); //une liste numérotées des objets contenus dans le meuble s'affiche // si c'est l'armoire qui a été choisie if (choisi.Nom == "une armoire") { choisi.AfficheContenuS(); choisi.ListerS(); int indexChoisi = VerifSaisie(choisi._elements.Length + 1); //Renommage pour plus de clarté Substances contenuChoisi = choisi._elements.ElementAt(indexChoisi - 1); titan._inventaireSubstances.Add(contenuChoisi); } else // si c'est le carton { Contenant r = choisi.AfficheContenuO(); int indexChoisi = VerifSaisie(3); //Renommage pour plus de clarté Substances contenuChoisi = r._elements.ElementAt(indexChoisi - 1); LireSubstance(contenuChoisi); } //interactions selon l'objet /* switch (contenuChoisi.Nom) * { * case 1: * "un livre": * contenuChoisi.AfficheDescription(); * break; * case "un becher": * Console.WriteLine("\nCe bécher est vide et prêt à l'emploi. On peut y mélanger 3 substances.\n"); * if (choisi.Melanger(titan)) * { * prendlafuite = edgar.Defier(titan); * if (prendlafuite == true) { * destination = salleRepos; * titan.SeReposer(ob1); * } * } * break; * }*/ } } Console.WriteLine("\nAppuyez sur b pour changer de pièce ou sur n'importe quelle autre touche pour continuer"); //le joueur a appuyé sur 'b', il souhaite donc changer de pièce } // fin du jeu : proposer de rejouer + enregistrement score } }while (rejouer); }//fin du Main
public string RegisterSubstance(Substance substance) { Substances.Add(substance); globalCount++; return(Substances.Count.ToString()); }
internal override void OnTimerTick() { if (base.GetBotData() != null) { #region Ammunation if (base.GetRoom().RoomData.Description.Contains("AMMUNATION")) { if (base.GetRoomUser().RotBody != 2) { base.GetRoomUser().RotBody = 2; base.GetRoomUser().RotHead = 2; } } #endregion #region Hobo if (base.GetBotData().InteractingWith != null && base.GetBotData().Name.Contains("HOBO")) { HabboHotel.PathFinding.Vector2D Pos1 = new HabboHotel.PathFinding.Vector2D(base.GetRoomUser().X, base.GetRoomUser().Y); HabboHotel.PathFinding.Vector2D Pos2 = new HabboHotel.PathFinding.Vector2D(base.GetBotData().InteractingWith.X, base.GetBotData().InteractingWith.Y); if (LActionTimer <= 5) { List <Point> list = base.GetRoom().GetGameMap().getWalkableList(); if (list.Count == 0) { return; } int randomNumber = new Random(DateTime.Now.Millisecond + this._virtualId ^ 2).Next(0, list.Count - 1); base.GetRoomUser().MoveTo(list[randomNumber].X, list[randomNumber].Y, true); LActionTimer++; } else { if (!Robbed) { if (RoleplayManager.Distance(Pos1, Pos2) > 1) { base.GetRoomUser().MoveTo(Pos2.X, Pos2.Y + 1, true); } else { base.GetRoomUser().MoveTo(Pos2.X, Pos2.Y + 1, true); Robbed = true; } } if (!Robbed && !base.GetRoomUser().IsWalking) { base.GetBotData().TimesTried++; } if (base.GetBotData().TimesTried >= 20) { base.GetRoomUser().Chat(null, "Filho da puta!", true, 1); System.Threading.Thread.Sleep(2000); RoleplayManager.KickBotFromRoom(base.GetRoomUser().BotData.Name, base.GetBotData().RoomId); } if (Robbed && !Done) { Random _s = new Random(); int Amnt = _s.Next(5, 100); if (base.GetBotData().InteractingWith.GetClient() == null) { Done = true; } if (base.GetBotData().InteractingWith.GetClient().GetHabbo() == null) { Done = true; } if (base.GetBotData().InteractingWith.GetClient().GetHabbo().Credits - Amnt <= 0) { base.GetRoomUser().Chat(null, "Droga, você está sem dinheiro, vou deixar você ir desta vez!", true, 1); Done = true; return; } base.GetRoomUser().Chat(null, "*Rouba $" + Amnt + " de " + base.GetBotData().InteractingWith.GetClient().GetHabbo().UserName + " e foge*", true, 1); RoleplayManager.GiveMoney(base.GetBotData().InteractingWith.GetClient(), -Amnt); Done = true; } if (Done) { RoleplayManager.KickBotFromRoom(base.GetRoomUser().BotData.Name, base.GetBotData().RoomId); } } } else { if (base.GetBotData() != null) { if (base.GetBotData().Name.Contains("HOBO")) { if (base.GetBotData().InteractingWith == null && base.GetBotData().Name.Contains("HOBO") || base.GetBotData().InteractingWith.GetClient().GetHabbo().CurrentRoomId != base.GetBotData().RoomId) { RoleplayManager.KickBotFromRoom(base.GetRoomUser().BotData.Name, base.GetBotData().RoomId); } } } } #endregion #region Hobo 2 if (base.GetBotData().InteractingWith != null && base.GetBotData().Name.Contains("HOBO 2")) { HabboHotel.PathFinding.Vector2D Pos1 = new HabboHotel.PathFinding.Vector2D(base.GetRoomUser().X, base.GetRoomUser().Y); HabboHotel.PathFinding.Vector2D Pos2 = new HabboHotel.PathFinding.Vector2D(base.GetBotData().InteractingWith.X, base.GetBotData().InteractingWith.Y); if (LActionTimer <= 5) { List <Point> list = base.GetRoom().GetGameMap().getWalkableList(); if (list.Count == 0) { return; } int randomNumber = new Random(DateTime.Now.Millisecond + this._virtualId ^ 2).Next(0, list.Count - 1); base.GetRoomUser().MoveTo(list[randomNumber].X, list[randomNumber].Y, true); LActionTimer++; } else { if (!Robbed) { if (RoleplayManager.Distance(Pos1, Pos2) > 1) { base.GetRoomUser().MoveTo(Pos2.X, Pos2.Y + 1, true); } else { base.GetRoomUser().MoveTo(Pos2.X, Pos2.Y + 1, true); Robbed = true; } } if (!Robbed && !base.GetRoomUser().IsWalking) { base.GetBotData().TimesTried++; } if (base.GetBotData().TimesTried >= 20) { base.GetRoomUser().Chat(null, "Filho da puta!", true, 1); System.Threading.Thread.Sleep(2000); RoleplayManager.KickBotFromRoom(base.GetRoomUser().BotData.Name, base.GetBotData().RoomId); } if (Robbed && !Done) { Random _s = new Random(); int AmntBank = _s.Next(5, 500); if (base.GetBotData().InteractingWith.GetClient() == null) { Done = true; } if (base.GetBotData().InteractingWith.GetClient().GetHabbo() == null) { Done = true; } if (base.GetBotData().InteractingWith.GetClient().GetRoleplay().Bank - AmntBank <= 0) { base.GetRoomUser().Chat(null, "Droga, você está sem dinheiro, vou deixar você ir desta vez!", true, 1); Done = true; return; } base.GetRoomUser().Chat(null, "*Rouba $" + AmntBank + " de " + base.GetBotData().InteractingWith.GetClient().GetHabbo().UserName + " e foge*", true, 1); base.GetBotData().InteractingWith.GetClient().GetRoleplay().SaveQuickStat("bank", "" + (base.GetBotData().InteractingWith.GetClient().GetRoleplay().Bank - AmntBank)); base.GetBotData().InteractingWith.GetClient().GetRoleplay().Bank -= AmntBank; Done = true; } if (Done) { RoleplayManager.KickBotFromRoom(base.GetRoomUser().BotData.Name, base.GetBotData().RoomId); } } } else { if (base.GetBotData() != null) { if (base.GetBotData().Name.Contains("HOBO 2")) { if (base.GetBotData().InteractingWith == null && base.GetBotData().Name.Contains("HOBO 2") || base.GetBotData().InteractingWith.GetClient().GetHabbo().CurrentRoomId != base.GetBotData().RoomId) { RoleplayManager.KickBotFromRoom(base.GetRoomUser().BotData.Name, base.GetBotData().RoomId); } } } } #endregion #region Free Roam Bot #endregion #region Store Bot if (robber != null) { if (robber.GetHabbo() == null) { beingRobbed = false; gatherNum = 0; gatherMsg = 0; amount = 0; return; } if (robber.GetHabbo().GetRoomUser() == null) { beingRobbed = false; gatherNum = 0; gatherMsg = 0; amount = 0; return; } if (robber.GetRoleplay() == null) { beingRobbed = false; gatherNum = 0; gatherMsg = 0; amount = 0; return; } if (robber.GetHabbo().GetRoomUser().Frozen || robber.GetRoleplay().Jailed || robber.GetRoleplay().Dead) { amount = 0; gatherMsg = 0; gatherNum = 0; robber.GetRoleplay().robbingStore = 0; robber = null; base.GetRoomUser().ApplyEffect(13); disableRob = true; beingRobbed = false; return; } if (gatherMsg <= 0) { base.GetRoomUser().Chat(null, "*Begins taking money from cash register*", true, 1); if (gatherSpeed == 1) { gatherMsg = 10; } if (gatherSpeed == 2) { gatherMsg = 5; } if (gatherSpeed == 0) { gatherMsg = 20; } gatherNum++; } else { gatherMsg--; } if (gatherNum == 5) { int amount = new Random().Next(0, 100); if (attack <= 6) { if (robber == null) { amount = 0; gatherMsg = 0; gatherNum = 0; robber.GetRoleplay().robbingStore = 0; robber = null; base.GetRoomUser().ApplyEffect(13); disableRob = true; beingRobbed = false; return; } else { attackCount++; base.GetRoomUser().Chat(null, "*Takes out their pump shotgun*", true, 1); base.GetRoomUser().ApplyEffect(164); base.GetRoomUser().Chat(null, "*Shoots " + robber.GetHabbo().UserName + ", killing them!*", true, 1); robber.GetRoleplay().DeadFigSet = false; robber.GetRoleplay().DeadSeconds = 60; robber.GetRoleplay().DeadTimer = 2; robber.GetRoleplay().Dead = true; robber.GetRoleplay().SaveStatusComponents("dead"); RoleplayManager.HandleDeath(robber); robber.SendNotif("You have been killed by a store clerk."); return; } } base.GetRoomUser().Chat(null, "*Drops money* Theres your money, now leave me alone!! [-$" + amount + "]", true, 1); RoleplayManager.GiveMoney(robber, +amount); amount = 0; gatherMsg = 0; gatherNum = 0; robber.GetRoleplay().robbingStore = 0; robber = null; base.GetRoomUser().ApplyEffect(13); disableRob = true; beingRobbed = false; } } else { beingRobbed = false; gatherNum = 0; gatherMsg = 0; amount = 0; } lastRobbed++; if (lastRobbed > 5000 && disableRob) { disableRob = false; lastRobbed = 0; base.GetRoomUser().ApplyEffect(0); } } #endregion #region Eatery Bot if (base.GetRoom() == null) { return; } if (base.GetRoom().RoomData.Description.Contains("EATERY")) { if (event_serving && event_serving_orderPlaced && !event_serving_delivered && !GetRoomUser().IsWalking) { if (!resetted) { if (order_tick >= 15) { resetted = true; GetRoomUser().Chat(null, "An error occured with pathfinding and I was unable to get to you, sorry about that!", true, 1); serving.SendWhisper("Order has been aborted! Try sitting closer maybe?"); ResetVariablesFor("eatery"); } else { order_tick++; } } } if (event_serving) { if (event_serving_orderPlaced && !event_serving_delivered) { RoomUser User = serving.GetHabbo().GetRoomUser(); #region Delete Serve Session if (serving == null) { event_serving = false; ResetVariablesFor("eatery"); return; } if (serving.GetHabbo() == null) { event_serving = false; ResetVariablesFor("eatery"); return; } if (serving.GetRoleplay() == null) { event_serving = false; ResetVariablesFor("eatery"); return; } if (serving.GetHabbo().CurrentRoom == null) { event_serving = false; ResetVariablesFor("eatery"); return; } if (serving.GetHabbo().CurrentRoom != GetRoom()) { event_serving = false; ResetVariablesFor("eatery"); return; } #endregion if (!event_set_items) { event_serving_plate = retrieveItem("diner_tray_0", true, User); event_serving_oneway = retrieveItem("one_way_door*1"); event_serving_oneway2 = retrieveItem("one_way_door*4"); event_set_items = true; if (event_serving_plate == null) { GetRoomUser().Chat(null, "Can you sit near an empty plate please?", true, 1); ResetVariablesFor("eatery"); return; } } else { /* * Vector2D TargetVector = new Vector2D(event_serving_plate.GetX,event_serving_plate.GetY); * Vector2D CurrentPos = new Vector2D(GetRoomUser().X,GetRoomUser().Y); * if(Plus.Misc.Distance(TargetVector,CurrentPos) > 2) * { * * }*/ if (Undefined_Timer_Tick_2 != 2) { passing_cur_gate = false; Undefined_Timer_Tick_2 = 2; } if (!event_serving_passedGate1) { HandleGatePass(event_serving_oneway); } else { GetRoomUser().AllowOverride = false; if (!event_serving_atTable) { if (GetRoomUser().X == RoleplayManager.GetPosSquare("behind", User).X&& GetRoomUser().Y == RoleplayManager.GetPosSquare("behind", User).Y) { GetRoomUser().RotBody = User.RotBody; GetRoomUser().RotHead = User.RotBody; event_serving_atTable = true; } else { GetRoomUser().MoveTo(RoleplayManager.GetPosSquare("behind", User)); } } else { if (!event_serving_delivered) { Food nFood = Substances.GetFoodByUName(event_serving_fooditem); RoleplayManager.ReplaceItem(serving, event_serving_plate, nFood.Item_Name); event_serving_delivered = true; GetRoomUser().Chat(null, "There you go, enjoy!", true, 1); ServerMessage action = new ServerMessage(LibraryParser.OutgoingRequest("RoomUserActionMessageComposer")); action.AppendInteger(GetRoomUser().VirtualId); action.AppendInteger(2); GetRoom().SendMessage(action); passing_cur_gate = false; } } } } } else { if (!event_serving_passedGate2) { HandleGatePass(event_serving_oneway2); } else { ResetVariablesFor("eatery"); } } } } #endregion }
// Méthode permettant au bagarreur de défier le joueur en lui volant une de ses substances et en l'attaquant // En entrée : le joueur pj // En sortie : un booléen indiquant si le joueur a abandonné (true si oui) et doit aller en salle de repos internal bool Defier(Joueur pj) { // la bagarreur vole une substance au joueur Substances substanceVolee = pj._inventaireSubstances[0]; pj._inventaireSubstances.Remove(substanceVolee); Console.WriteLine(this._nom + " vous a volé le " + substanceVolee + " pour vous défier."); bool abandon = false; bool finCombat = false; // COMBAT while ((finCombat == false) && (abandon == false)) { Console.WriteLine(); pj._ptVie -= this._degat; Console.Write(this._nom + " vous attaque. Vous perdez " + this._degat + " points de vie. "); if (pj._ptVie <= 0) { Console.WriteLine("Il ne vous reste aucun point de vie."); } else { Console.WriteLine("Il vous reste " + pj._ptVie + " points de vie."); } if (pj._ptVie <= 0) { finCombat = true; } else { Console.WriteLine("Que voulez-vous faire ?\n1 : Répliquer avec un coup de pied\n2 : Répliquer avec un coup de poing" + "\n3 : Abandonner puis aller reprendre des forces dans la salle de repos"); int choix = Program.VerifSaisie(3); Console.WriteLine(); if ((choix == 1) || (choix == 2)) // si le joueur choisit de répliquer { pj.Defier(this, choix); } if (choix == 3) // si le joueur choisit d'abandonner et de quitter le laboratoire { abandon = true; } if (this._ptVie <= 0) { finCombat = true; } } } // Test : pourquoi le combat s'est il arrêté // Soit le joueur n'a plus de vie, le joueur a perdu la partie if (pj._ptVie <= 0) { Console.WriteLine("\nVous avez perdu !"); Program.Quitter(); } // Soit le bagarreur n'a plus de vie, le joueur a gagné le combat else if (this._ptVie <= 0) { pj._inventaireSubstances.Add(substanceVolee); Console.WriteLine("\nBravo ! Vous avez récupéré la substance qui vous avait été volée !" + " Vous pouvez continuer à préparer la potion.\n"); } // Soit le joueur a abandonné else { Console.WriteLine("\nDommage ! Vous abandonnez et allez vous reposer."); } return(abandon); }
// Procédure qui permet de fabriquer une potion // En entrée : le joueur pj souhaitant interagir avec l'objet internal static bool Melanger(Joueur pj) { bool trouvePotion = false; Potion potionTrouve = null; List <Substances> melange = new List <Substances>(); if (pj.NbSubstances >= 3) { Console.WriteLine("Quelles substances souhaitez-vous ajouter pour réaliser une potion avec ce bécher ?\n"); pj.AfficheInventaire(); int subN = 0; while (subN < 3) { subN++; Console.WriteLine("\nChoisissez la substance numéro {0} à ajouter.", subN); int indexSub = VerifSaisie(pj.NbSubstances); Substances subChoisie = pj._inventaireSubstances.ElementAt(indexSub - 1); melange.Add(subChoisie); pj._inventaireSubstances.Remove(subChoisie); } Console.WriteLine("\nPréparation en cours"); int k = 0; while ((potions[k] != potionTrouve) && (k < potions.Count)) { //Nouveau nom pour plus de clarté Potion test = potions[k]; int i = 0; while (i < 4) { if (test._composition.Contains(melange[i])) { i++; } else { break; } } if (i == 3) { potionTrouve = test; trouvePotion = true; } else { k++; } } if (k > potions.Count) { trouvePotion = false; } else { Console.WriteLine("\n\n\nFelicitation ! Vous avez fabriqué du " + Program.potions[k].Nom); } } pj._inventaireSubstances.Sort(); return(trouvePotion); }