public async Task <IActionResult> Edit(int id, Arcana arcana) { if (id != arcana.arcanaID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(arcana); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ArcanaExists(arcana.arcanaID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(arcana)); }
public List <string[]> DoubleFusionsByArcana(Arcana arcana) { List <string[]> combinations = new List <string[]>(); var rowLowerLimit = doubleFusion.GetLowerBound(0); var rowUpperLimit = doubleFusion.GetUpperBound(0); var colLowerLimit = doubleFusion.GetLowerBound(1); var colUpperLimit = doubleFusion.GetUpperBound(1); for (int row = rowLowerLimit; row <= rowUpperLimit; row++) { for (int col = colLowerLimit; col <= colUpperLimit; col++) { if (doubleFusion[row, col] == arcana.ToString()) { string[] item = new string[] { ((Arcana)row).ToString(), ((Arcana)col).ToString() }; if (!item.Contains(arcana.ToString())) { combinations.Add(item); } } } } return(combinations); }
public MagePath(string name, Arcana a1, Arcana a2, Arcana bad, string atb) { this.name = name; this.arcana1 = a1; this.arcana2 = a2; this.bad_arcana = bad; this.bonus_attribute = atb; }
public void Bonus_ArcanaSpecified_ShouldWork() { SetupCharacter(); Skills arcana = new Arcana(true, true); Assert.AreEqual(-5, arcana.Bonus); Assert.IsTrue(arcana.Proficiency); Assert.IsTrue(arcana.Expertise); }
public List <string[]> HowDoIFuse(Arcana arcanaToFuse) { List <string[]> combinations = new List <string[]>(); combinations.AddRange(fusionUtilities.DoubleFusionsByArcana(arcanaToFuse)); combinations.AddRange(fusionUtilities.TripleFusionByArcana(arcanaToFuse)); return(combinations); }
public void ShouldReturnName() { //assign ISkill actualSkillBase = new Arcana(); //act ITextObj name = actualSkillBase.Name(); //assert name.Should().Be(new TextObj("Arcana")); }
public void ShouldReturnWisdomAsBaseAttribute() { //arrange ISkill skill = new Arcana(); ICharacterAttribute intellegenceAttribute = new IntellegenceAttribute(); //act ICharacterAttribute actualAttribute = skill.BaseAttribute(); //assert actualAttribute.Should().Be(intellegenceAttribute); }
public Spell(string n, string i, string d, string texpath, Arcana a, Usage u, int l, int m) { DisplayName = n; InternalName = i; Description = d; Arcana = a; Level = l; manaCost = m; Usage = u; tex2dpath = texpath; }
public async Task <IActionResult> Create([Bind("arcanaID,Arcananame")] Arcana arcana) { if (ModelState.IsValid) { _context.Add(arcana); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(arcana)); }
public int ReturnRequiredLevel(Arcana a) { if (Arcana == a) { return(Level - 3); } if ((int)Arcana == ((int)a - 3) || (int)Arcana == ((int)a - 3)) { return(Level + 1); } return(Level); }
public void ShouldReturnBonusOfBaseAttribute() { //arrange IntellegenceAttribute intellegenceAttribute = new IntellegenceAttribute(new AttributeScore(14)); ISkill arcana = new Arcana(intellegenceAttribute); IAttributeScore expectedScore = new AttributeScore(2); //act IAttributeScore actualScore = arcana.SkillBonus(); //assert actualScore.Should().Be(expectedScore); }
public void processSkill(int skillNum) { Arcana a = nextArcana(); if (a != null) { a.attack(monsters[0]); //update turn map turnSpeeds[next] += a.speed; getNext(); } }
public static void removePartyMember(int placement) { if (placement > 3 || party[placement] == null) { //can't do anything here return; } //otherwise, update the Arcana's vars and remove from party Arcana cur = party[placement]; characterLvls[cur.getId()] = cur.getLevel(); characterExps[cur.getId()] = cur.getExp(); party[placement] = null; partySize--; }
//End reference //sets up the Arcana variable for adding a party member public static void addPartyMember(int id, int placement) { if (placement > 3 || party[placement] != null) { //space occupied, we can't add a party member here return; } //otherwise, we can init an Arcana based on their id and known level and exp Arcana toAdd = loadFromId(id); toAdd.setLevel(characterLvls[id]); toAdd.setExp(characterExps[id]); party[placement] = toAdd; partySize++; }
public PlayerCharacter(Game game, int id, string n, int[] hpsp, int[] s, int[] g, string gra, Gender gen, Arcana a) { Name = n; ID = id; StatGain = g; Inventory.Capacity = 16; Spells.Capacity = 8; //stats BattleStats = new BattleStats(null); BattleStats.baseAttributes.Add(Magicians.Attributes.Strength, s[0]); BattleStats.baseAttributes.Add(Magicians.Attributes.Magic, s[1]); BattleStats.baseAttributes.Add(Magicians.Attributes.Dexterity, s[2]); BattleStats.MaxHP = hpsp[0]; BattleStats.HP = BattleStats.MaxHP; BattleStats.MaxSP = hpsp[1]; BattleStats.SP = BattleStats.MaxSP; this.Arcana = a; foreach (KeyValuePair <Attributes, int> kvp in BattleStats.baseAttributes) { BattleStats.Attributes.Add(kvp.Key, kvp.Value); } BattleStats.baseResistances.Add(DamageTypes.Physical, 0); BattleStats.baseResistances.Add(DamageTypes.Fire, 0); BattleStats.baseResistances.Add(DamageTypes.Cold, 0); BattleStats.baseResistances.Add(DamageTypes.Electricity, 0); BattleStats.baseResistances.Add(DamageTypes.Poison, 0); BattleStats.baseResistances.Add(DamageTypes.Raw, 0); BattleStats.baseResistances.Add(DamageTypes.Light, 100); foreach (KeyValuePair <DamageTypes, int> kvp in BattleStats.baseResistances) { BattleStats.Resistances.Add(kvp.Key, kvp.Value); } for (int i = 0; i < Equips.Length; i++) { Equips[i] = null; } GraphicsFolderName = gra; Gender = gen; Level = 1; GetLevelUps(game); }
public override string ToString() { return(Acrobatics.ToString() + ' ' + AnimalHandling.ToString() + ' ' + Arcana.ToString() + ' ' + Athletics.ToString() + ' ' + Deception.ToString() + ' ' + History.ToString() + ' ' + Insight.ToString() + ' ' + Intimidation.ToString() + ' ' + Investigation.ToString() + ' ' + Medicine.ToString() + ' ' + Nature.ToString() + ' ' + Perception.ToString() + ' ' + Performance.ToString() + ' ' + Persusion.ToString() + ' ' + Religion.ToString() + ' ' + SleightOfHand.ToString() + ' ' + Stealth.ToString() + ' ' + Survival.ToString()); }
public Tuple<Persona, Persona> GetNextLowestAndNextHighestPersonaByArcana(Arcana arcana, double targetLevel) { Persona lower = new Persona(); Persona higher = new Persona(); lower = GetPersonaList(arcana).Where(o => o.ActualLevel <= targetLevel).OrderByDescending(o => o.ActualLevel).FirstOrDefault(); if (lower == null) { lower = GetPersonaList(arcana).OrderBy(o => o.ActualLevel).FirstOrDefault(); } higher = GetPersonaList(arcana).Where(o => o.ActualLevel >= targetLevel).OrderBy(o => o.ActualLevel).FirstOrDefault(); if (higher == null) { higher = GetPersonaList(arcana).OrderByDescending(o => o.ActualLevel).FirstOrDefault(); } Tuple<Persona, Persona> result = new Tuple<Persona, Persona>(lower, higher); return result; }
//processes an attack, then proceeds to the next Arcana turn public void processAttack() { Arcana a = nextArcana(); if (a != null) { a.attack(monsters[0]); //update HP in UI e1.transform.GetChild(0).GetComponent <TextMeshPro>().text = "(" + monsters[0].curHP + " / " + monsters[0].totalHP + ")"; //if all the monsters are dead, finish the combat! if (allMonstersDead()) { endCombat(); } else { //update turn map turnSpeeds[next] += a.speed; getNext(); } } }
public List<Persona> GetPersonaList(Arcana arcana) { return GetPersonaList().Where(o => o.Arcana == arcana).OrderBy(o => o.ActualLevel).ToList<Persona>(); }
public PlayerCharacter(Game game, CharacterSave charsave) { ID = charsave.ID; BattleStats = new BattleStats(null); Name = charsave.Name; BattleStats.HP = charsave.HpSp[0]; BattleStats.MaxHP = charsave.HpSp[1]; BattleStats.SP = charsave.HpSp[2]; BattleStats.MaxSP = charsave.HpSp[3]; BattleStats.baseAttributes.Add(Magicians.Attributes.Strength, charsave.Stats[0]); BattleStats.baseAttributes.Add(Magicians.Attributes.Magic, charsave.Stats[1]); BattleStats.baseAttributes.Add(Magicians.Attributes.Dexterity, charsave.Stats[2]); StatGain = charsave.StatGain.ToArray(); Inventory.Capacity = 16; Spells.Capacity = 8; foreach (KeyValuePair <Attributes, int> kvp in BattleStats.baseAttributes) { BattleStats.Attributes.Add(kvp.Key, kvp.Value); } BattleStats.baseResistances.Add(DamageTypes.Physical, 0); BattleStats.baseResistances.Add(DamageTypes.Fire, 0); BattleStats.baseResistances.Add(DamageTypes.Cold, 0); BattleStats.baseResistances.Add(DamageTypes.Electricity, 0); BattleStats.baseResistances.Add(DamageTypes.Poison, 0); BattleStats.baseResistances.Add(DamageTypes.Raw, 0); BattleStats.baseResistances.Add(DamageTypes.Light, 100); foreach (KeyValuePair <DamageTypes, int> kvp in BattleStats.baseResistances) { BattleStats.Resistances.Add(kvp.Key, kvp.Value); } this.Arcana = charsave.Arcana; for (int i = 0; i < charsave.Inventory.Count; i++) { Inventory.Add(game.Items.Find(p => p.InternalName == charsave.Inventory[i])); } for (int i = 0; i < charsave.Equips.Length; i++) { for (int e = 0; e < Inventory.Count; e++) { if (Inventory[e].InternalName == charsave.Equips[i]) { EquipItem(e); } } } for (int i = 0; i < charsave.Spells.Count; i++) { for (int x = 0; x < game.Spells.Count; x++) { if (game.Spells[x].InternalName == charsave.Spells[i]) { LearnSpell(game.Spells[x]); break; } } } Level = charsave.Level; Exp = charsave.Exp; TotalExp = charsave.TotalExp; NextLevelExp = charsave.NextLevelExp; BattleStats.RecalculateStats(); GraphicsFolderName = charsave.SpriteFolder; Gender = charsave.Gender; if (Spells.Count > 8) { Spells.RemoveRange(8, Spells.Count - 8); } Spells.Capacity = 8; GetLevelUps(game); LearnableSpellLevels = charsave.LearnLevels; if (charsave.LearnSpells != null) { foreach (string s in charsave.LearnSpells) { var spell = game.Spells.Find(spl => spl.InternalName == s); if (spell != null) { LearnableSpells.Add(spell); } } } }
//creating characters from an XML element public PlayerCharacter(Game game, XElement element) { ID = int.Parse(element.Attribute("id").Value); Name = element.Attribute("name").Value; GraphicsFolderName = element.Attribute("spriteDir").Value; Level = int.Parse(element.Attribute("level").Value); Exp = int.Parse(element.Attribute("exp").Value); NextLevelExp = int.Parse(element.Attribute("nextExp").Value); TotalExp = uint.Parse(element.Attribute("totalExp").Value); switch (element.Attribute("gender").Value) { case "Male": Gender = Gender.Male; break; case "Female": Gender = Gender.Female; break; } switch (element.Attribute("arcana").Value) { case "Light": Arcana = Arcana.Light; break; case "Shadow": Arcana = Arcana.Shadow; break; case "Fire": Arcana = Arcana.Fire; break; case "Water": Arcana = Arcana.Water; break; case "Earth": Arcana = Arcana.Earth; break; case "Wind": Arcana = Arcana.Wind; break; } Inventory.Capacity = 16; Spells.Capacity = 8; BattleStats = new BattleStats(null); BattleStats.MaxHP = int.Parse(element.Attribute("maxHP").Value); BattleStats.MaxSP = int.Parse(element.Attribute("maxSP").Value); BattleStats.HP = int.Parse(element.Attribute("hp").Value); BattleStats.SP = int.Parse(element.Attribute("sp").Value); BattleStats.baseArmour = int.Parse(element.Attribute("armour").Value); var statEls = element.Element("Stats").Descendants("Stat").ToArray <XElement>(); BattleStats.baseAttributes.Add(Magicians.Attributes.Strength, int.Parse(statEls[0].Value)); BattleStats.baseAttributes.Add(Magicians.Attributes.Magic, int.Parse(statEls[1].Value)); BattleStats.baseAttributes.Add(Magicians.Attributes.Dexterity, int.Parse(statEls[2].Value)); foreach (KeyValuePair <Attributes, int> kvp in BattleStats.baseAttributes) { BattleStats.Attributes.Add(kvp.Key, kvp.Value); } var statGns = element.Element("Gains").Descendants("Gain").ToArray <XElement>(); var gns = new List <int>(); gns.Add(int.Parse(statGns[0].Value)); gns.Add(int.Parse(statGns[1].Value)); gns.Add(int.Parse(statGns[2].Value)); StatGain[0] = gns[0]; StatGain[1] = gns[1]; StatGain[2] = gns[2]; BattleStats.baseResistances.Add(DamageTypes.Physical, 0); BattleStats.baseResistances.Add(DamageTypes.Fire, 0); BattleStats.baseResistances.Add(DamageTypes.Cold, 0); BattleStats.baseResistances.Add(DamageTypes.Electricity, 0); BattleStats.baseResistances.Add(DamageTypes.Poison, 0); BattleStats.baseResistances.Add(DamageTypes.Raw, 0); BattleStats.baseResistances.Add(DamageTypes.Light, 100); foreach (KeyValuePair <DamageTypes, int> kvp in BattleStats.baseResistances) { BattleStats.Resistances.Add(kvp.Key, kvp.Value); } var items = element.Element("Items").Descendants("Item").ToList(); for (int i = 0; i < items.Count; i++) { Inventory.Add(game.Items.Find(p => p.InternalName == items[i].Value)); } var spells = element.Element("Spells").Descendants("Spell").ToList(); for (int i = 0; i < spells.Count; i++) { Spells.Add(game.Spells.Find(p => p.InternalName == spells[i].Value)); } Equips = new EquippableItem[4]; var equipEls = element.Element("Equips").Descendants("Equip").ToArray(); for (int i = 0; i < equipEls.Length; i++) { for (int e = 0; e < Inventory.Count; e++) { if (Inventory[e].InternalName == equipEls[i].Value) { EquipItem(e); } } } var learnSpells = element.Element("LearnSpells").Descendants("LevelSpell").ToArray(); for (int i = 0; i < learnSpells.Length; i++) { var args = learnSpells[i].Value.Split('|'); LearnableSpellLevels.Add(int.Parse(args[0])); LearnableSpells.Add(game.Spells.Find(p => p.InternalName == args[1])); } }
public List<Tuple<Arcana, Arcana>> FusionSearch(Arcana desiredArcana) { List<Tuple<Arcana, Arcana>> combinations = new List<Tuple<Arcana, Arcana>>(); combinations.AddRange(fusionArcanaModel.GetDoubleFusionParametersByArcana(desiredArcana)); combinations.AddRange(fusionArcanaModel.GetTripleFusionParametersByArcana(desiredArcana)); return combinations; }
public override void Update(GameTime gameTime) { var drawVector = new Point(game.GetScreenWidth() / 2 - 350, game.GetScreenHeight() / 2 - 295); if (displayTutHighlight) { if (tutHighlightIncr) { highlightAlpha += 0.5f; if (highlightAlpha > 255) { tutHighlightIncr = false; } } if (!tutHighlightIncr) { highlightAlpha -= 0.5f; if (highlightAlpha < 1) { tutHighlightIncr = true; } } } if (canAdvanceToNextStage()) { NextButton.Update(gameTime); } BackButton.Update(gameTime); switch (stage) { case (Stage.Naming): { if (nameInputActive) { bool capslock = Console.CapsLock; cursorTimer += (float)gameTime.ElapsedGameTime.TotalSeconds; if (cursorTimer > 0.4) { displayCursor = !displayCursor; cursorTimer = 0; } if (playerName.Length < 10) { foreach (Keys key in keys) { if (game.Input.IsKeyReleased(key)) { var s = key.ToString(); if (!game.Input.IsKeyPressed(Keys.LeftShift) && !game.Input.IsKeyPressed(Keys.RightShift) && !capslock) { s = s.ToLower(); } playerName = playerName.Insert(cursorPosition, s); cursorPosition++; game.Audio.PlaySound("Type", true); break; } } if (game.Input.IsKeyReleased(Keys.Space)) { playerName = playerName.Insert(cursorPosition, " "); cursorPosition++; } if (game.Input.IsKeyReleased(Keys.OemTilde)) { playerName = playerName.Insert(cursorPosition, "'"); cursorPosition++; } } if (game.Input.IsKeyReleased(Keys.Back) && cursorPosition > 0) { playerName = playerName.Remove(cursorPosition - 1, 1); cursorPosition--; } if (game.Input.IsKeyReleased(Keys.Left) && cursorPosition != 0) { cursorPosition--; } if (game.Input.IsKeyReleased(Keys.Right) && cursorPosition != playerName.Length) { cursorPosition++; } } var mRectangle = new Rectangle(baseOffset.X + 160, baseOffset.Y + 282, 70, 70); var fRectangle = new Rectangle(baseOffset.X + 460, baseOffset.Y + 282, 70, 70); if (game.Input.HasMouseClickedOnRectangle(mRectangle)) { gender = Gender.Male; } if (game.Input.HasMouseClickedOnRectangle(fRectangle)) { gender = Gender.Female; } var nameBarRec = new Rectangle(drawVector.X + 100, drawVector.Y + 132, 500, 68); var background = new Rectangle(drawVector.X, drawVector.Y, 600, 470); if (game.Input.HasMouseClickedOnRectangle(background)) { nameInputActive = false; } if (game.Input.HasMouseClickedOnRectangle(nameBarRec)) { nameInputActive = true; } break; } case (Stage.Arcana): { for (int i = 0; i < arcanaRecs.Length; i++) { if (game.Input.HasMouseClickedOnRectangle(arcanaRecs[i])) { selectedArcana = (Arcana)i; } } break; } case (Stage.Attributes): { drawVector = new Point(game.GetScreenWidth() / 2 - 240, game.GetScreenHeight() / 2 - 230); for (int i = 0; i < AttributeButtons.Length; i++) { if (AttributeButtons[i].Activated()) { switch (i) { case (0): { PlusAttribute(Attributes.Strength); break; } case (1): { MinusAttribute(Attributes.Strength); break; } case (2): { PlusAttribute(Attributes.Magic); break; } case (3): { MinusAttribute(Attributes.Magic); break; } case (4): { PlusAttribute(Attributes.Dexterity); break; } case (5): { MinusAttribute(Attributes.Dexterity); break; } } } } break; } } drawVector = new Point(game.GetScreenWidth() / 2 - 350, game.GetScreenHeight() / 2 - 295); var navigationButtons = new Rectangle[2]; navigationButtons[0] = new Rectangle(drawVector.X + 565, drawVector.Y + 533, 61, 50); navigationButtons[1] = new Rectangle(drawVector.X + 631, drawVector.Y + 533, 61, 50); if (game.Input.HasMouseClickedOnRectangle(navigationButtons[0])) { this.stage--; } if (game.Input.HasMouseClickedOnRectangle(navigationButtons[1]) && canAdvanceToNextStage()) { if (this.stage == Stage.Finish) { CreateMainCharacter(); game.CloseUIWindow(); game.worldUI.display = false; } this.stage++; } if (stage == 0) { game.BeginSceneChange(Game.GameScenes.MainMenu); ((Map)game.Scene).EventManager.Events.Clear(); game.Audio.SetAmbience("AmbWindOutside", 40); game.CloseUIWindow(); game.worldUI.display = false; } stage = (Stage)MathHelper.Clamp((int)stage, 1, 5); }
public List<Tuple<Arcana, Arcana>> GetTripleFusionParametersByArcana(Arcana desiredResult) { List<Tuple<Arcana, Arcana>> combinations = new List<Tuple<Arcana, Arcana>>(); var rowLowerLimit = tripleFusion.GetLowerBound(0); var rowUpperLimit = tripleFusion.GetUpperBound(0); var colLowerLimit = tripleFusion.GetLowerBound(1); var colUpperLimit = tripleFusion.GetUpperBound(1); for (int row = rowLowerLimit; row <= rowUpperLimit; row++) { for (int col = colLowerLimit; col <= colUpperLimit; col++) { if (tripleFusion[row, col] == desiredResult) { Tuple<Arcana, Arcana> item = new Tuple<Arcana, Arcana>((Arcana)row, (Arcana)col); if (!(item.Item1 == desiredResult || item.Item2 == desiredResult)) { combinations.Add(item); } } } } return combinations; }
public List <Persona> GetPersonaListByArcana(Arcana arcana) { return(personaModel.GetPersonaList(arcana)); }
public Arcana GetDoubleFusionResultingArcana(Arcana first, Arcana second) { return doubleFusion[(int)first, (int)second]; }
public List <Persona> GetPersonaList(Arcana arcana) { return(personaList.Where(o => o.Arcana == arcana).OrderBy(o => o.InitialLevel).ToList <Persona>()); }
/// <inheritdoc/> public override bool DoesModelPassFilter(string filter) => Name.Contains(filter, StringComparison.OrdinalIgnoreCase) || Arcana.Contains(filter, StringComparison.OrdinalIgnoreCase) || Level.ToString().Contains(filter) || Stats.DoesModelPassFilter(filter) || ElementAffinities.DoesModelPassFilter(filter);