public void UpdateRef(ref e_modeAction mood_) { if (Contents.contientLaSouris(base.rect) && Mouse.GetState().LeftButton == ButtonState.Pressed) { mood_ = type; } }
public SystemeDeJeu() { tourencours = 0; numeroDeTour = 1; listeDesJoueurs = new List<Armee>(); waitForFinDeTour = false; mood = e_modeAction.Mouvement; conditionsDeVictoire = e_typeDePartie.Joute; // HO LA LA probleme resolu ? (Who said this ?) limiteDeTours = 0; }
public BoutonAction(e_modeAction type_) : base(new Rectangle(0, 0, 32, 32), new Rectangle(0, 0, 500, 500)) { type = type_; switch (type_) { case e_modeAction.Attaque: color = Color.Red; break; case e_modeAction.Mouvement: color = Color.Blue; break; case e_modeAction.Pouvoir: color = Color.Purple; break; default: break; } }
public void AttaqueSud(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_) { if (j + 1 < moteurgraphique_.largeur && moteurgraphique_.map[i, j + 1].presence) { mouvOrNot = false; Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i, j + 1]. pointeurArmee].bataillon[moteurgraphique_.map[i, j + 1].pointeurUnite], 1, moteurgraphique_, gameplay_, ref mood_, hud_); sousrect.X = 128; } }
public void Attaquer(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_) { if ((i + 1 < moteurgraphique_.longueur && moteurgraphique_.map[i + 1, j].presence) && ((Keyboard.GetState().IsKeyDown(Keys.F) || (moteurgraphique_.map[i + 1, j].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed)) && attaqOrNot)) { AttaqueEst(moteurgraphique_, gameplay_, ref mood_, hud_); } if ((j > 0 && moteurgraphique_.map[i, j - 1].presence) && ((Keyboard.GetState().IsKeyDown(Keys.R) || (moteurgraphique_.map[i, j - 1].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed)) && attaqOrNot)) { AttaqueNord(moteurgraphique_, gameplay_, ref mood_, hud_); } if ((i > 0 && moteurgraphique_.map[i - 1, j].presence) && ((Keyboard.GetState().IsKeyDown(Keys.E) || (moteurgraphique_.map[i - 1, j].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed)) && attaqOrNot)) { AttaqueOuest(moteurgraphique_, gameplay_, ref mood_, hud_); } if ((j + 1 < moteurgraphique_.largeur && moteurgraphique_.map[i, j + 1].presence) && ((Keyboard.GetState().IsKeyDown(Keys.D) || (moteurgraphique_.map[i, j + 1].estEnSurbrillance && Mouse.GetState().RightButton == ButtonState.Pressed)) && attaqOrNot)) { AttaqueSud(moteurgraphique_, gameplay_, ref mood_, hud_); } #region attaque a distance if (Mouse.GetState().RightButton == ButtonState.Pressed && attaqOrNot) { for (int portee_ = 1; portee_ < 7; portee_++) { if (portee[portee_] != 0) { for (int k = 0; k < portee_; k++) { if (i + k >= 0 && i + k < moteurgraphique_.longueur && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur) { if (moteurgraphique_.map[i + k, j + (portee_ - k)].presence && moteurgraphique_.map[i + k, j + (portee_ - k)].estEnSurbrillance && moteurgraphique_.map[i + k, j + (portee_ - k)].visible && attaqOrNot) { mouvOrNot = false; Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i + k, j + (portee_ - k)]. pointeurArmee].bataillon[moteurgraphique_.map[i + k, j + (portee_ - k)].pointeurUnite], portee_, moteurgraphique_, gameplay_, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } if (i - k >= 0 && i - k < moteurgraphique_.longueur && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur) { if (moteurgraphique_.map[i - k, j - (portee_ - k)].presence && moteurgraphique_.map[i - k, j - (portee_ - k)].estEnSurbrillance && moteurgraphique_.map[i - k, j - (portee_ - k)].visible && attaqOrNot) { mouvOrNot = false; Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i - k, j - (portee_ - k)]. pointeurArmee].bataillon[moteurgraphique_.map[i - k, j - (portee_ - k)].pointeurUnite], portee_, moteurgraphique_, gameplay_, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur && j - k >= 0 && j - k < moteurgraphique_.largeur) { if (moteurgraphique_.map[i + (portee_ - k), j - k].presence && moteurgraphique_.map[i + (portee_ - k), j - k].estEnSurbrillance && moteurgraphique_.map[i + (portee_ - k), j - k].visible && attaqOrNot) { mouvOrNot = false; Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i + (portee_ - k), j - k]. pointeurArmee].bataillon[moteurgraphique_.map[i + (portee_ - k), j - k].pointeurUnite], portee_, moteurgraphique_, gameplay_, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur && j + k >= 0 && j + k < moteurgraphique_.largeur) { if (moteurgraphique_.map[i - (portee_ - k), j + k].presence && moteurgraphique_.map[i - (portee_ - k), j + k].estEnSurbrillance && moteurgraphique_.map[i - (portee_ - k), j + k].visible && attaqOrNot) { mouvOrNot = false; Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i - (portee_ - k), j + k]. pointeurArmee].bataillon[moteurgraphique_.map[i - (portee_ - k), j + k].pointeurUnite], portee_, moteurgraphique_, gameplay_, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } } } } } #endregion }
public void AttaqueOuest(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_) { mouvOrNot = false; Initiative(gameplay_.listeDesJoueurs[moteurgraphique_.map[i - 1, j]. pointeurArmee].bataillon[moteurgraphique_.map[i - 1, j].pointeurUnite], 1, moteurgraphique_, gameplay_, ref mood_, hud_); sousrect.X = 256; }
public void UpdatePouvoir(MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood_, HUD hud_) { if (Mouse.GetState().RightButton == ButtonState.Pressed && attaqOrNot) { foreach (int portee_ in SHORYUKEN.porteePouvoir) { if (SHORYUKEN.vertical) { int k = 0; #region 1 if (i + k >= 0 && i + k < moteurgraphique_.longueur && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur) { if (moteurgraphique_.map[i + k, j + (portee_ - k)].presence && moteurgraphique_.map[i + k, j + (portee_ - k)].estEnSurbrillance && moteurgraphique_.map[i + k, j + (portee_ - k)].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + k, j + (portee_ - k), ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion #region 2 if (i - k >= 0 && i - k < moteurgraphique_.longueur && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur) { if (moteurgraphique_.map[i - k, j - (portee_ - k)].presence && moteurgraphique_.map[i - k, j - (portee_ - k)].estEnSurbrillance && moteurgraphique_.map[i - k, j - (portee_ - k)].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - k, j - (portee_ - k), ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion #region 3 if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur && j - k >= 0 && j - k < moteurgraphique_.largeur) { if (moteurgraphique_.map[i + (portee_ - k), j - k].presence && moteurgraphique_.map[i + (portee_ - k), j - k].estEnSurbrillance && moteurgraphique_.map[i + (portee_ - k), j - k].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + (portee_ - k), j - k, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion #region 4 if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur && j + k >= 0 && j + k < moteurgraphique_.largeur) { if (moteurgraphique_.map[i - (portee_ - k), j + k].presence && moteurgraphique_.map[i - (portee_ - k), j + k].estEnSurbrillance && moteurgraphique_.map[i - (portee_ - k), j + k].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - (portee_ - k), j + k, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion } else { for (int k = 0; k <= portee_; k++) { #region 1 if (i + k >= 0 && i + k < moteurgraphique_.longueur && j + (portee_ - k) >= 0 && j + (portee_ - k) < moteurgraphique_.largeur) { if (moteurgraphique_.map[i + k, j + (portee_ - k)].presence && moteurgraphique_.map[i + k, j + (portee_ - k)].estEnSurbrillance && moteurgraphique_.map[i + k, j + (portee_ - k)].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + k, j + (portee_ - k), ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion #region 2 if (i - k >= 0 && i - k < moteurgraphique_.longueur && j - (portee_ - k) >= 0 && j - (portee_ - k) < moteurgraphique_.largeur) { if (moteurgraphique_.map[i - k, j - (portee_ - k)].presence && moteurgraphique_.map[i - k, j - (portee_ - k)].estEnSurbrillance && moteurgraphique_.map[i - k, j - (portee_ - k)].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - k, j - (portee_ - k), ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion #region 3 if (i + (portee_ - k) >= 0 && i + (portee_ - k) < moteurgraphique_.longueur && j - k >= 0 && j - k < moteurgraphique_.largeur) { if (moteurgraphique_.map[i + (portee_ - k), j - k].presence && moteurgraphique_.map[i + (portee_ - k), j - k].estEnSurbrillance && moteurgraphique_.map[i + (portee_ - k), j - k].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i + (portee_ - k), j - k, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion #region 4 if (i - (portee_ - k) >= 0 && i - (portee_ - k) < moteurgraphique_.longueur && j + k >= 0 && j + k < moteurgraphique_.largeur) { if (moteurgraphique_.map[i - (portee_ - k), j + k].presence && moteurgraphique_.map[i - (portee_ - k), j + k].estEnSurbrillance && moteurgraphique_.map[i - (portee_ - k), j + k].visible && attaqOrNot) { mouvOrNot = false; SHORYUKEN.UtiliserPouvoir(this, moteurgraphique_, gameplay_, i - (portee_ - k), j + k, ref mood_, hud_); gameplay_.CheckPV(moteurgraphique_, hud_); } } #endregion } } } } }
public void Initiative(Unite ennemi_, int porteDeFrappe_, MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, ref e_modeAction mood, HUD hud_) { if (!ennemi_.estInvisible) { estInvisible = false; assassin = ennemi_.numeroArmee; ennemi_.assassin = numeroArmee; if ((initiative + bonusInitiative) >= ennemi_.initiative) { Frappe(ennemi_, porteDeFrappe_, moteurgraphique_, gameplay_, hud_); } else { ennemi_.Frappe(this, porteDeFrappe_, moteurgraphique_, gameplay_, hud_); } mood = e_modeAction.Mouvement; attaqOrNot = false; } }
public void UpdateButtons(ref e_modeAction mood_, bool pouvoir_) { bAttaque.UpdateRef(ref mood_); bMouvement.UpdateRef(ref mood_); if (pouvoir_) { bPouvoir.UpdateRef(ref mood_); } }
public void Update(MoteurGraphique loohy_, SystemeDeJeu gameplay_, ref e_modeAction mood_, /*Lecteur coldman_,*/ HUD hud_) { if (bataillon[uniteselect].fileDeMouvements.Count == 0) { switch (mood_) { case e_modeAction.Attaque: bataillon[uniteselect].Attaquer(loohy_, gameplay_, ref mood_, hud_); break; case e_modeAction.Pouvoir: if (bataillon[uniteselect].SHORYUKEN != null) { bataillon[uniteselect].UpdatePouvoir(loohy_, gameplay_, ref mood_, hud_); } break; default: bataillon[uniteselect].Mouvement(loohy_, gameplay_.listeDesJoueurs[gameplay_.tourencours], gameplay_); break; } } loohy_.porteeEgal0(); if (gameplay_.mood == e_modeAction.Attaque) { bataillon[uniteselect].lookAtPortee(loohy_); } if (gameplay_.mood == e_modeAction.Pouvoir) { bataillon[uniteselect].lookAtPorteePouvoir(loohy_); } if ((bataillon[uniteselect].state == e_EtatAnim.repos1 || bataillon[uniteselect].state == e_EtatAnim.repos2) && !hud_.sontvises()) { Selectionner(loohy_, /*coldman_,*/ hud_); } foreach (Unite item in bataillon) { item.lireLaFile(loohy_, gameplay_.listeDesJoueurs[gameplay_.tourencours], gameplay_); } }
public void UpdateSelonIAouNon(MoteurGraphique loohy_, SystemeDeJeu gameplay_, ref e_modeAction mood_, /*Lecteur coldman_,*/ HUD hud_, ref int time_, ref bool transition_) { if (IA) { UpdateIA(loohy_, gameplay_,/* coldman_,*/ hud_, ref time_, ref transition_); } else { Update(loohy_, gameplay_, ref mood_, /*coldman_, */hud_); } }
public void FinDeTour(MoteurGraphique moteurgraphique_, /*Lecteur coldman_,*/ HUD hud_, ref int time, ref bool transition_) { numeroDeTour += 0.5f; //coldman_.Play(Lecteur.EffectKey.laser); bool vousAvezTousFini = true; foreach (Unite bob in listeDesJoueurs[tourencours].bataillon) { vousAvezTousFini = vousAvezTousFini && bob.fileDeMouvements.Count == 0; } if (vousAvezTousFini) { transition_ = listeDesJoueurs[(tourencours + 1) % listeDesJoueurs.Count].difficulte == 0; #region si limite de tours if (conditionsDeVictoire == e_typeDePartie.Colline) { limiteDeTours -= 1/(float)listeDesJoueurs.Count; if (limiteDeTours > 0) { waitForFinDeTour = false; listeDesJoueurs[tourencours].FindeTour(); do { tourencours = (tourencours + 1) % listeDesJoueurs.Count; } while (!listeDesJoueurs[tourencours].atLeastOneAlive); listeDesJoueurs[tourencours].reactiverIA(); time = 0; hud_.DoAFlash(listeDesJoueurs[tourencours].couleur); moteurgraphique_.viderVueChangementDeJoueur(); listeDesJoueurs[tourencours].soeurAnne(moteurgraphique_, this); listeDesJoueurs[tourencours].auras(moteurgraphique_, this); mood = e_modeAction.Mouvement; if (moteurgraphique_.map[tresor_i, tresor_j].presence && listeDesJoueurs[moteurgraphique_.map[tresor_i, tresor_j].pointeurArmee]. bataillon[moteurgraphique_.map[tresor_i, tresor_j].pointeurUnite].alive) { listeDesJoueurs[moteurgraphique_.map[tresor_i, tresor_j].pointeurArmee].score += Math.Max(50 - (int)limiteDeTours, 0); } } else { int v = 0; for (int i = 0; i < listeDesJoueurs.Count; i++) { if (listeDesJoueurs[i].score > listeDesJoueurs[v].score) { v = listeDesJoueurs[i].camp; } } victory(v, hud_); } } #endregion #region sinon else { waitForFinDeTour = false; listeDesJoueurs[tourencours].FindeTour(); moteurgraphique_.viderChemin(); listeDesJoueurs[tourencours].FindeTour(); do { tourencours = (tourencours + 1) % listeDesJoueurs.Count; } while (!listeDesJoueurs[(int)limiteDeTours].atLeastOneAlive); listeDesJoueurs[tourencours].reactiverIA(); time = 0; hud_.DoAFlash(listeDesJoueurs[tourencours].couleur); moteurgraphique_.viderVueChangementDeJoueur(); listeDesJoueurs[tourencours].soeurAnne(moteurgraphique_, this); listeDesJoueurs[tourencours].auras(moteurgraphique_, this); mood = e_modeAction.Mouvement; } #endregion moteurgraphique_.centrerSur(listeDesJoueurs[tourencours].QG.X, listeDesJoueurs[tourencours].QG.Y); clic = false; } else { waitForFinDeTour = true; } }
public void UtiliserPouvoir(Unite moi_, MoteurGraphique moteurgraphique_, SystemeDeJeu gameplay_, int i_, int j_, ref e_modeAction mood_, HUD hud_) { if (moi_.energieactuel >= coutEnergie) { hud_.powa(nom); //cible : gameplay_.armees[moteurgraphique_.map[i_, j_].pointeurArmee].bataillon[moteurgraphique_.map[i_, j_].pointeurUnite] mood_ = e_modeAction.Mouvement; moi_.attaqOrNot = false; moi_.energieactuel -= coutEnergie; if (moteurgraphique_.map[i_, j_].presence) { switch (type) { case e_typeDePouvoir.Degat: #region Degats if (estPhysique) { gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].pvactuel -= Math.Max(0, efficacite - gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].armure); } else { gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].pvactuel -= Math.Max(0, efficacite - gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].resistance); } gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].assassin = moi_.numeroArmee; break; #endregion case e_typeDePouvoir.Soin: #region Soin gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].pvactuel += efficacite; break; #endregion case e_typeDePouvoir.Boost: #region Boost switch (boost) { case e_typeDeBoost.BonusAttaque: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonusAttaque += efficacite; break; case e_typeDeBoost.BonusArmure: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonusArmure += efficacite; break; case e_typeDeBoost.BonusPuissance: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonuspuissance += efficacite; break; case e_typeDeBoost.BonusResistance: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonusresistance += efficacite; break; case e_typeDeBoost.BonusPrecision: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonusprecision += efficacite; break; case e_typeDeBoost.BonusCoupCritique: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonusCoupcritique += efficacite; break; case e_typeDeBoost.BonusEsquive: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonusEsquive *= efficacite; break; case e_typeDeBoost.BonusInitiative: gameplay_.listeDesJoueurs[moteurgraphique_.map[i_, j_].pointeurArmee]. bataillon[moteurgraphique_.map[i_, j_].pointeurUnite].bonusInitiative += efficacite; break; default: break; } break; #endregion default: break; } } if (nom == e_pouvoir.PandaNinja) { moi_.estInvisible = true; } } }