// Draw public override void Draw() { if (player.skillBuild == null) { return; } if (lastCurrentAttunement != player.currentAttunement) { time = 0f; lastCurrentAttunement = player.currentAttunement; } int skillCount = 5; int attunementCount = player.currentWeapon.attunements.Count; int miniMargin = mainMargin / 4; int miniSkillBarWidth = (skillCount * attunementCount * (miniIconSize + miniMargin) - miniMargin); int offsetX = ((int)GUIArea.width) / 2 - miniSkillBarWidth / 2 + (5 * (miniIconSize + miniMargin) - miniMargin) / 2; //int offsetX = 0; skillToShow = null; // Fix width and height of the GUI style cooldownNumberStyle.fixedWidth = mainIconSize; cooldownNumberStyle.fixedHeight = mainIconSize; cooldownNumberStyle.fontSize = 18 + (mainIconSize - defaultMainIconSize) / 2; miniCooldownNumberStyle.fixedWidth = miniIconSize; miniCooldownNumberStyle.fixedHeight = miniIconSize; miniCooldownNumberStyle.fontSize = 10 + (miniIconSize - defaultMiniIconSize) / 2; foreach (var attunement in player.attunements) { if (attunement == player.currentAttunement) { DrawSkills( attunement.skills, (int)Mathf.Lerp(miniIconSize, mainIconSize, time), (int)Mathf.Lerp(miniMargin, mainMargin, time), (int)Mathf.Lerp(miniMarginBottom, miniMarginBottom + mainMarginBottom, time), (int)Mathf.Lerp(offsetX, GUIArea.width / 2, time), time >= 1.0f ? cooldownNumberStyle : miniCooldownNumberStyle ); offsetX += (miniIconSize + miniMargin) * attunement.skills.Count; continue; } offsetX += DrawSkills(attunement.skills, miniIconSize, miniMargin, miniMarginBottom, offsetX, miniCooldownNumberStyle) + miniMargin; } // Skill description if (skillToShow != null) { GUILayout.BeginArea(skillDescPos); GUILayout.BeginVertical("box"); skillToShow.DrawDescription(skillDescriptionStyle); GUILayout.EndVertical(); GUILayout.EndArea(); } }
void Update() { // Update attunement cooldowns for (int i = 0; i < attunements.Length; i++) { Attunement a = attunements[i]; a.UpdateCooldown(); } #region Player input if (Input.GetKeyDown(KeyCode.Space) && !IsAirborn) { StartCoroutine(Jump()); } if (Input.GetKeyDown(KeyCode.A)) { currentAttunement = SwapToElement(Element.FIRE); } if (Input.GetKeyDown(KeyCode.S)) { currentAttunement = SwapToElement(Element.WATER); } if (Input.GetKeyDown(KeyCode.D)) { currentAttunement = SwapToElement(Element.WIND); } if (Input.GetKeyDown(KeyCode.F)) { currentAttunement = SwapToElement(Element.EARTH); } #endregion }
// Draw attunement void DrawAttunement(Attunement attunement) { var skills = attunement.skills; // Header using (new GUIHorizontal()) { //GUILayout.Label("<b><size=14>" + attunement.name + "</size></b>"); attunement.id = EditorGUILayout.IntField(attunement.id, GUILayout.Width(40)); attunement.name = EditorGUILayout.TextField(attunement.name, GUILayout.Width(100)); GUILayout.FlexibleSpace(); } // Skills DrawSkills(skills); // Add skill using (new GUIHorizontal()) { GUILayout.FlexibleSpace(); if (GUILayout.Button("Add skill")) { skills.Add(new Skill("Unknown skill", skills.Count == 0 ? 0 : skills[skills.Count - 1].id + 1, Skill.SkillType.Normal, false, null)); } // Remove skill if (GUILayout.Button("Remove skill") && skills.Count > 0) { skills.RemoveAt(skills.Count - 1); } } EditorGUILayout.Separator(); }
public ActionResult DeleteConfirmed(int id) { Attunement attunement = db.Attunement.Find(id); db.Attunement.Remove(attunement); db.SaveChanges(); return(RedirectToAction("Index")); }
// AddAttunement public void AddAttunement(Attunement attunement) { foreach(var skill in attunement.skills) { skill.weapon = this; skill.LoadResources(); } attunements.Add(attunement); }
// PostSerialize public static void PostSerialize(Weapon nWeapon, Attunement nAttunement, List <Skill> skills) { foreach (var skill in skills) { skill.attunement = nAttunement; skill.weapon = nWeapon; skill.PostSerialize(); } }
// AddAttunement public void AddAttunement(Attunement attunement) { foreach (var skill in attunement.skills) { skill.weapon = this; skill.LoadResources(); } attunements.Add(attunement); }
public ActionResult Edit([Bind(Include = "AttuneID,AttuneName")] Attunement attunement) { if (ModelState.IsValid) { db.Entry(attunement).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View("~/Views/Admin/Attunements/Edit.cshtml", attunement)); }
public ActionResult Create([Bind(Include = "AttuneID,AttuneName")] Attunement attunement) { if (ModelState.IsValid) { db.Attunement.Add(attunement); db.SaveChanges(); return(RedirectToAction("Index")); } return(View("~/Views/Admin/Attunements/Create.cshtml", attunement)); }
// Update attunement switching void UpdateAttunementSwitching() { byte attunementId = Attunement.Undefined; if (inputManager.GetButtonDown(buttons.PreviousAttunement)) { if (currentAttunementId == 0) { attunementId = (byte)(attunements.Count - 1); } else { attunementId = (byte)(currentAttunementId - 1); } } else if (inputManager.GetButtonDown(buttons.NextAttunement)) { if (currentAttunementId == attunements.Count - 1) { attunementId = 0; } else { attunementId = (byte)(currentAttunementId + 1); } } else { for (byte counter = 0; counter < attunements.Count; counter++) { if (inputManager.GetButton(buttons.Attunements[counter])) { attunementId = counter; break; } } } if (attunementId != Attunement.Undefined) { Attunement requestedAttunement = attunements[attunementId]; if (requestedAttunement != currentAttunement && !requestedAttunement.isOnCooldown) { // TODO: Do not send multiple times networkView.RPC("ClientAttunement", uLink.RPCMode.Server, attunementId); // We assume that the server allowed it SwitchAttunement(attunementId); } } }
// GET: Attunements/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Attunement attunement = db.Attunement.Find(id); if (attunement == null) { return(HttpNotFound()); } return(View("~/Views/Admin/Attunements/Delete.cshtml", attunement)); }
void Awake() { #region References rb = GetComponent <Rigidbody2D>(); render = GetComponent <SpriteRenderer>(); #endregion #region Properly set up attunements // assign attunements to an element attunements[0].Init(Element.FIRE, Color.red); attunements[1].Init(Element.WATER, Color.blue); attunements[2].Init(Element.WIND, Color.gray); attunements[3].Init(Element.EARTH, Color.yellow); currentAttunement = SwapToElement(Element.FIRE); // Fire for initial element #endregion }
// Get a copy of the weapons public List <Weapon> GetWeapons(List <Rune> runes, SkillBuild build) { // Create runes for each skill foreach (var skill in runeDetonators.skills) { runes.Add(new Rune(skill)); } // Weapon list var weapons = new List <Weapon>(); foreach (var weaponBuild in build.weapons) { LogManager.Spam.Log("Trying to find weapon ID " + weaponBuild.weaponId); var originalWeapon = Weapon.idToWeapon[weaponBuild.weaponId]; var weapon = new Weapon(originalWeapon); LogManager.Spam.Log("Registered weapon " + weapon.name); weapons.Add(weapon); // Add attunements from attunement IDs foreach (var attunementBuild in weaponBuild.attunements) { var originalAttunement = Attunement.idToAttunement[attunementBuild.attunementId]; var attunement = new Attunement( originalAttunement.name, originalAttunement.id, null ); // Add skills from skill IDs foreach (var skillId in attunementBuild.skills) { try { var skill = Skill.idToSkill[skillId]; attunement.AddSkill(Skill.Copy(skill)); } catch (KeyNotFoundException) { LogManager.General.LogError("Could not find skill with ID: " + skillId); } } weapon.AddAttunement(attunement); } } return(weapons); }
// PostSerialize public void PostSerialize() { currentAttunementId = 0; damageMultiplier = 1.0f; if (!Weapon.idToWeapon.ContainsKey(id)) { Weapon.nameToWeapon[name] = this; Weapon.idToWeapon[id] = this; } summonSkill = new Skill("Summon " + name, Weapon.SummonSkillIdStart + id, Skill.SkillType.Normal, false, null); summonSkill.stages.Add(new Skill.Stage()); summonSkill.weapon = this; Attunement.PostSerialize(this, attunements); }
Attunement SwapToElement(Element newElement) { print("Swap to " + newElement); if (GetAttunementFromElement(newElement).IsAvailable) { if (currentAttunement != null) // check if currentAttunement was assigned before { currentAttunement.OnSwapOut(); // trying to call its OnSwapOut() } Attunement a = GetAttunementFromElement(newElement); render.color = a.color; a.OnSwapIn(); return(a); } else { print(newElement + " not charged"); return(currentAttunement); } }
void ClientAttunement(byte attunementId, uLink.NetworkMessageInfo info) { // Make sure we throw away late and duplicate RPC messages, or from the wrong client if (info.sender != networkView.owner || info.timestamp <= ltsClientAttunement) { return; } // Invalid ID if (attunementId >= attunements.Count) { return; } // Dead or game ended or didn't start? if (!canAct) { return; } Attunement requestedAttunement = attunements[attunementId]; // Anti attunement bonus hack if (currentAttunement == requestedAttunement) { return; } // Anti cooldown hack if (requestedAttunement.isOnCooldown) { return; } networkView.RPC("SwitchAttunement", uLink.RPCMode.OthersExceptOwner, attunementId); SwitchAttunement(attunementId); ltsClientAttunement = info.timestamp; }
void Awake() { #region References rb = GetComponent<Rigidbody2D>(); render = GetComponent<SpriteRenderer>(); #endregion #region Properly set up attunements // assign attunements to an element attunements[0].Init( Element.FIRE, Color.red ); attunements[1].Init( Element.WATER, Color.blue ); attunements[2].Init( Element.WIND, Color.gray ); attunements[3].Init( Element.EARTH, Color.yellow ); currentAttunement = SwapToElement( Element.FIRE ); // Fire for initial element #endregion }
public Mon(byte[] _id) //string _name, HEXTokenType _tokenType, Age _age, Vector3 _attunement, Vector3 _race, Vector3 _job, Vector3 _soma, Vector3 _ego) { if (_id.Length == 32) { id = _id; } else { Debug.Log("Invalid ID: Must be 32 bytes"); return; } int setAge = 0; int setAttunement = 0; int setRace = 0; int setJob = 0; soma = new Soma(); ego = new Ego(); for (int i = 0; i < 32; i++) { UnityEngine.Random.InitState(id[i]); //setAge += UnityEngine.Random.; setAttunement += Random.Range(0, 5); setRace += Random.Range(0, 5); setJob += Random.Range(0, 5); soma.Intelligence += Random.Range(0, 24); soma.Strength += Random.Range(0, 24); soma.Defense += Random.Range(0, 24); soma.Dexterity += Random.Range(0, 24); soma.Health += Random.Range(0, 9999); soma.Mana += Random.Range(0, 9999); ego.Movespeed += Random.Range(2, 5); ego.Lifespan += Random.Range(24, 100); ego.Power += Random.Range(1, 24); } setAge = setAge % 6; setAttunement = setAttunement % 6; setRace = setRace % 6; setJob = setJob % 6; age = (Age)setAge; attunement = (Attunement)setAttunement; race = (Race)setRace; job = (Job)setJob; soma.Intelligence = soma.Intelligence % 24; soma.Strength = soma.Strength % 24; soma.Defense = soma.Defense % 24; soma.Dexterity = soma.Dexterity % 24; soma.Mana = soma.Mana % 9999; soma.Health = soma.Health % 9999; ego.Movespeed = (ego.Movespeed % 4) + 1; ego.Lifespan = (ego.Lifespan % 99) + 24; ego.Power = (ego.Power % 24) + 1; ego.Size = 1; ego.Level = 1; ego.Generation = 0; }
void Update() { // Update attunement cooldowns for (int i = 0; i < attunements.Length; i++) { Attunement a = attunements[i]; a.UpdateCooldown (); } #region Player input if ( Input.GetKeyDown(KeyCode.Space) && !IsAirborn) StartCoroutine( Jump() ); if ( Input.GetKeyDown( KeyCode.A ) ) currentAttunement = SwapToElement(Element.FIRE); if ( Input.GetKeyDown( KeyCode.S ) ) currentAttunement = SwapToElement(Element.WATER); if ( Input.GetKeyDown( KeyCode.D ) ) currentAttunement = SwapToElement(Element.WIND); if ( Input.GetKeyDown( KeyCode.F ) ) currentAttunement = SwapToElement(Element.EARTH); #endregion }