Esempio n. 1
0
    // 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();
        }
    }
Esempio n. 2
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
    }
Esempio n. 3
0
    // 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"));
        }
Esempio n. 5
0
    // AddAttunement
    public void AddAttunement(Attunement attunement)
    {
        foreach(var skill in attunement.skills) {
            skill.weapon = this;
            skill.LoadResources();
        }

        attunements.Add(attunement);
    }
Esempio n. 6
0
 // 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();
     }
 }
Esempio n. 7
0
    // 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));
        }
Esempio n. 10
0
    // 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));
        }
Esempio n. 12
0
    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
    }
Esempio n. 13
0
    // 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);
    }
Esempio n. 14
0
    // 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);
    }
Esempio n. 15
0
 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);
     }
 }
Esempio n. 16
0
    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;
    }
Esempio n. 17
0
    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
    }
Esempio n. 18
0
    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;
    }
Esempio n. 19
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
    }