private bool GamePreparing() { try { for (int pl = 0; pl < Players.Count; pl++) { var v = GetSpawnPoints(pl); for (int h = 0; h < HeroesPerPlayer; h++) { Maze.UnitPositions.Add(Players[pl].Heroes[h], v[h % v.Count]); Players[pl].Heroes[h].Init(Players[pl], Maze, Shop); } Players[pl].InitPlayer(); } } catch (Exception e) { Console.WriteLine(e.ToString()); return(false); } NextHero(); CurrentHero.StartTurn(); return(true); }
public void EndTurn() { CurrentPlayer.EndTurn(); CurrentHero.EndTurn(); Maze.TickTalents(CurrentPlayer); NextHero(); CurrentHero.StartTurn(); }
public void UpdateAttributes() { charStatsPanel.UpdateStats(CurrentHero); quirksPanel.UpdateQuirksPanel(CurrentHero); diseasePanel.UpdateDiseasePanel(CurrentHero); resistancesPanel.UpdateResistances(CurrentHero); stressPanel.UpdateStress(CurrentHero.GetPairedAttribute(AttributeType.Stress).ValueRatio); }
//when to add clothing to the wardrobe //when paramaterless clothing is added from the get go. //to slove issue with int not allowing null default: https://stackoverflow.com/questions/38488443/why-a-value-of-type-null-cannot-be-used-as-a-default-parameter-with-type-double public void addClothingToWardrobe(int typeOfClothingEnum, int particularClothingEnum, int?storyLocation = null) { if (storyLocation == null) { CurrentHero.addToWardrobe(typeOfClothingEnum, particularClothingEnum); } else //in the future this will be added to some kind of event array so the hero does not have //access to it until the event occurs { CurrentHero.addToWardrobe(typeOfClothingEnum, particularClothingEnum); } }
private void leftTrinketSlot_onDropIn(InventorySlot slot, InventoryItem item) { if (item.ItemType == "trinket") { CurrentHero.Equip((Trinket)item.ItemData, TrinketSlot.Left); DarkestSoundManager.PlayOneShot("event:/ui/town/character_equip"); } else { CurrentHero.Unequip(TrinketSlot.Left); } PanelChanged(); }
private void rightTrinketSlot_onDropOut(InventorySlot slot, InventoryItem item) { if (item.ItemType == "trinket") { CurrentHero.Unequip(TrinketSlot.Right); DarkestSoundManager.PlayOneShot("event:/ui/town/character_unequip"); PanelChanged(); } else { CurrentHero.Unequip(TrinketSlot.Right); } PanelChanged(); }
public static void DoCombo() { var hero = CurrentHero.Get(); switch (hero) { case Champion.Akali: { Champions.Akali.Modes.Combo.Execute(); break; } case Champion.Caitlyn: { Champions.Caitlyn.Modes.Combo.Execute(); break; } case Champion.Evelynn: { Champions.Evelynn.Modes.Combo.Execute(); break; } case Champion.Ezreal: { Champions.Ezreal.Modes.Combo.Execute(); break; } case Champion.Soraka: { Champions.Soraka.Modes.Combo.Execute(); break; } case Champion.Teemo: { Champions.Teemo.Modes.Combo.Execute(); break; } case Champion.Corki: { Champions.Corki.Modes.Combo.Execute(); break; } } }
/// <summary> /// 判断当前英雄是否已经购买 /// </summary> /// <returns></returns> public static bool JudgeWhetherBuy(CurrentHero current_Hero) { switch (current_Hero) { case CurrentHero.GuiYuZi: return(true); case CurrentHero.CiShen: if (CiShen_Buy > 0) { return(true); } else { return(false); } case CurrentHero.YuZi: if (YuZi_Buy > 0) { return(true); } else { return(false); } case CurrentHero.ShouSi: if (ShouSi_Buy > 0) { return(true); } else { return(false); } } return(false); }
public void RefreshFieldOfView(VectorBase position) { var initialNumberAlreadyExplored = GetNumberOfExploredTiles(); var lit = new bool[Width, Height]; var radius = Option.HeroSightRange; ShadowCaster.ComputeFieldOfViewWithShadowCasting(position.x, position.y, radius, (x1, y1) => { if (this.Bounds().Contains(new VectorBase(x1, y1))) { return(!Tiles[x1, y1].IsTransparent); } else { return(false); } }, // delegate to handle transperancy (x2, y2) => { // Need to check against the bounds of the stage if (this.Bounds().Contains(new VectorBase(x2, y2))) { lit[x2, y2] = true; Explored[x2, y2] = true; Tiles[x2, y2].SetVisible(true); Tiles[x2, y2].IsExplored = true; } } // delegate to handle visibility ); var changedNumberAlreadyExplored = GetNumberOfExploredTiles(); // Let the hero know things have been explored. CurrentHero.Explore(changedNumberAlreadyExplored - initialNumberAlreadyExplored); SetVisibility(lit); }
//获取人物等级 public static int GetHeroLevel(CurrentHero current_Hero) { int hero_Level = 0; switch (current_Hero) { case CurrentHero.GuiYuZi: hero_Level = GuiYuZi_Level_Value; break; case CurrentHero.CiShen: hero_Level = CiShen_Level_Value; break; case CurrentHero.YuZi: hero_Level = YuZi_Level_Value; break; case CurrentHero.ShouSi: hero_Level = ShouSi_Level_Value; break; } return(hero_Level); }
/// <summary> /// Update the scene /// </summary> /// <param name="time"></param> /// <param name="hasFocus"></param> /// <param name="isCovered"></param> public override void Update(GameTime time, bool hasFocus, bool isCovered) { // Go back to the main menu if (Keyboard.IsNewKeyPress(Keys.Escape)) { ScreenManager.AddScreen(new MainMenu()); ExitScreen(); } switch (CurrentState) { #region Select hero case CharGenStates.SelectHero: if (Mouse.IsButtonDown(MouseButtons.Left)) { for (int id = 0; id < 4; id++) { if (HeroeBoxes[id].Contains(Mouse.Location)) { HeroID = id; // Create a new hero or remove it if (Heroes[id] == null) { Heroes[id] = new Hero(); CurrentState = CharGenStates.SelectRace; } else { CurrentState = CharGenStates.Delete; } } } } break; #endregion #region Select race case CharGenStates.SelectRace: { Point point = new Point(302, 160); for (int i = 0; i < 12; i++) { if (new Rectangle(point.X, point.Y, 324, 16).Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { CurrentHero.Race = (HeroRace)Enum.GetValues(typeof(HeroRace)).GetValue(i / 2); CurrentHero.Gender = (HeroGender)(i % 2); CurrentState = CharGenStates.SelectClass; } point.Y += 18; } } break; #endregion #region Select class case CharGenStates.SelectClass: { Point point = new Point(304, 0); var currentAllowedClasses = AllowedClass[CurrentHero.Race]; for (int i = 0; i < currentAllowedClasses.Count(); i++) { point.Y = 160 + i * 18; if (new Rectangle(point.X, point.Y, 324, 16).Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { CurrentHero.Professions.Clear(); foreach (HeroClass cls in Enum.GetValues(typeof(HeroClass))) { if ((currentAllowedClasses[i] & cls) != 0) { CurrentHero.Professions.Add(new Profession(0, currentAllowedClasses[i])); } } CurrentState = CharGenStates.SelectAlignment; } // Back if (BackButton.Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { CurrentState = CharGenStates.SelectRace; } } } break; #endregion #region Select alignment case CharGenStates.SelectAlignment: { Point point = new Point(304, 0); for (int i = 0; i < 9; i++) { point.Y = 176 + i * 18; if (new Rectangle(point.X, point.Y, 324, 16).Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { EntityAlignment[] alignments = new EntityAlignment[] { EntityAlignment.LawfulGood, EntityAlignment.NeutralGood, EntityAlignment.ChaoticGood, EntityAlignment.LawfulNeutral, EntityAlignment.TrueNeutral, EntityAlignment.ChaoticNeutral, EntityAlignment.LawfulEvil, EntityAlignment.NeutralEvil, EntityAlignment.ChaoticEvil, }; CurrentHero.Alignment = alignments[i]; CurrentHero.RollAbilities(); CurrentState = CharGenStates.SelectFace; } } // Back if (BackButton.Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { CurrentState = CharGenStates.SelectClass; } } break; #endregion #region Select face case CharGenStates.SelectFace: { if (Mouse.IsNewButtonDown(MouseButtons.Left)) { if (new Rectangle(288, 132, 64, 32).Contains(Mouse.Location)) { FaceOffset--; } if (new Rectangle(288, 164, 64, 32).Contains(Mouse.Location)) { FaceOffset++; } // Select a face for (int x = 0; x < 4; x++) { if (new Rectangle(352 + x * 64, 132, 64, 64).Contains(Mouse.Location)) { CurrentHero.Head = FaceOffset + x; CurrentState = CharGenStates.Confirm; break; } } } // Limit value if (CurrentHero.Gender == HeroGender.Male) { if (FaceOffset < 0) { FaceOffset = 0; } if (FaceOffset > 25) { FaceOffset = 25; } } else { if (FaceOffset < 29) { FaceOffset = 29; } if (FaceOffset > 40) { FaceOffset = 40; } } // Back if (BackButton.Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { CurrentState = CharGenStates.SelectAlignment; } } break; #endregion #region Confirm case CharGenStates.Confirm: { if (Mouse.IsNewButtonDown(MouseButtons.Left)) { // Reroll if (new Rectangle(448, 318, 76, 32).Contains(Mouse.Location)) { CurrentHero.RollAbilities(); } // Faces if (new Rectangle(448, 350, 76, 32).Contains(Mouse.Location)) { CurrentHero.Head = -1; CurrentState = CharGenStates.SelectFace; } // Modify if (new Rectangle(528, 316, 76, 32).Contains(Mouse.Location)) { } // Keep if (new Rectangle(528, 350, 76, 32).Contains(Mouse.Location)) { CurrentState = CharGenStates.SelectName; CurrentHero.Name = GetRandomName(CurrentHero.Race, CurrentHero.Gender); Keyboard.KeyDown += new EventHandler <PreviewKeyDownEventArgs>(Keyboard_OnKeyDown); } } } break; #endregion #region Select name case CharGenStates.SelectName: { // Back //if (BackButton.Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) if (new Rectangle(448, 350, 80, 32).Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { CurrentState = CharGenStates.Confirm; Keyboard.KeyDown -= Keyboard_OnKeyDown; } // OK if (new Rectangle(528, 350, 80, 32).Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) { Keyboard.KeyDown -= new EventHandler <PreviewKeyDownEventArgs>(Keyboard_OnKeyDown); CurrentState = CharGenStates.SelectHero; } } break; #endregion #region Delete hero case CharGenStates.Delete: { if (Mouse.IsNewButtonDown(MouseButtons.Left)) { // Delete if (new Rectangle(448, 344, 76, 32).Contains(Mouse.Location)) { Heroes[HeroID] = null; CurrentState = CharGenStates.SelectHero; } // Ok if (new Rectangle(528, 344, 76, 32).Contains(Mouse.Location)) { CurrentState = CharGenStates.SelectHero; } } } break; #endregion } // Update anim if (Anims != null) { Anims.Update(time); } // If the team is ready, let's go ! if (PlayButton.Rectangle.Contains(Mouse.Location) && Mouse.IsNewButtonDown(MouseButtons.Left)) // && IsTeamReadyToPlay) { PrepareTeam(); PlayButton.OnSelectEntry(); } }