Beispiel #1
0
        private void Awake()
        {
            CameraFollow.SetTarget(GameObject.FindGameObjectWithTag("TargetPlayer"));
            //Physics2D.gravity = new Vector2(0, -2 * HeightOfJump / (TimeToCompleteAbility * TimeToCompleteAbility));
            _slottingMachine      = GameObject.FindGameObjectWithTag("SlottingMachine").GetComponent <SlottingMachine>();
            _packetReader         = GameObject.FindGameObjectWithTag("PacketReader").GetComponent <PacketReader>();
            _chipsAnimator        = GetComponent <Animator>();
            Abilities             = GameObject.FindGameObjectWithTag("AbilityLibrary").GetComponent <AbilityLibrary>();
            _numAbilityChildCount = Abilities.transform.childCount;
            _chipsRigidbody2D     = GetComponent <Rigidbody2D>();
            _abilitiesButtons     = new Button[_numAbilityChildCount];

            for (int childID = 0; childID < _numAbilityChildCount; childID++)
            {
                _abilitiesButtons[childID] = Abilities.transform.GetChild(childID).GetComponent <Button>();
            }

            FractionTillAbilityComplete = new float[NumOfSlots];
            for (int fractionID = 0; fractionID < NumOfSlots; fractionID++)
            {
                FractionTillAbilityComplete[fractionID] = 0.0f;
            }

            if (PlayButton == null)
            {
                PlayButton = GameObject.FindGameObjectWithTag("PlayButton").GetComponent <Button>();
            }

            if (ResetButton == null)
            {
                ResetButton = GameObject.FindGameObjectWithTag("EjectButton").GetComponent <Button>();
            }

            directionLastFrame = right;
        }
Beispiel #2
0
    private void Start()
    {
        aLib = GameObject.FindGameObjectWithTag("AbilityDictionary").GetComponent <AbilityLibrary>();
        equipmentController      = GameObject.FindGameObjectWithTag("PrimaryInterface").transform.Find("ItemCrafting").GetComponent <EquipmentCrafting_Controller>();
        inventory                = GetComponent <Player_Inventory_Script>();
        activeLegendaryPerks     = new List <LegendaryPerk>();
        equipmentController.ALib = aLib;

        #region Armor types
        ArmorItemTypes = new List <ItemType>();
        ArmorItemTypes.Add(ItemType.HELMET);
        ArmorItemTypes.Add(ItemType.HAT);
        ArmorItemTypes.Add(ItemType.COIF);
        ArmorItemTypes.Add(ItemType.CHESTPLATE);
        ArmorItemTypes.Add(ItemType.CHESTGUARD);
        ArmorItemTypes.Add(ItemType.ROBE);
        ArmorItemTypes.Add(ItemType.CHAPS);
        ArmorItemTypes.Add(ItemType.PLATELEGS);
        ArmorItemTypes.Add(ItemType.TROUSERS);
        #endregion

        if (File.Exists("CharData.dat"))
        {
            LoadCharacterData();
            GetComponent <Player_Details_Script>().MaxHealth = BonusHealth;
        }
        CurrentWeaponSlot = 0;
    }
 public SacrificialKnife(AbilityLibrary scriptRef) : base()
 {
     Type          = WeaponType.SACRIFICIALKNIFE;
     lib           = scriptRef;
     SkillSet      = new Ability[4];
     ItemName      = "Sacrificial Knife";
     skillRequired = "Necromancy";
 }
Beispiel #4
0
 public Sword(AbilityLibrary scriptRef) : base()
 {
     Type          = WeaponType.SWORD;
     lib           = scriptRef;
     SkillSet      = new Ability[4];
     ItemName      = "Sword";
     skillRequired = "Swordsmanship";
 }
Beispiel #5
0
 public Censer(AbilityLibrary scriptRef) : base()
 {
     Type          = WeaponType.CENSER;
     lib           = scriptRef;
     SkillSet      = new Ability[4];
     ItemName      = "Censer";
     skillRequired = "Lifeweaving";
 }
Beispiel #6
0
 public Vessel(AbilityLibrary scriptRef) : base()
 {
     Type          = WeaponType.VESSEL;
     lib           = scriptRef;
     SkillSet      = new Ability[4];
     ItemName      = "Vessel";
     skillRequired = "Witchcraft";
 }
 public RecurveBow(AbilityLibrary scriptRef) : base()
 {
     Type          = WeaponType.RECURVEBOW;
     lib           = scriptRef;
     SkillSet      = new Ability[4];
     ItemName      = "Recurve Bow";
     skillRequired = "Marksmanship";
 }
Beispiel #8
0
 public void SetSkill(int slot, Ability skill)
 {
     if (AbilityLibrary.WeaponSupportsSkill(skill.abilityName, type.ToString()))
     {
         skillStringName[slot]   = skill.abilityName;
         SkillSet[slot]          = skill;
         SelectedAbilities[slot] = lib.AbilityDictionary[SkillSet[slot].abilityName].UseAbility;
     }
 }
Beispiel #9
0
 private void Awake()
 {
     if (!Instance)
     {
         Instance = this;
         DontDestroyOnLoad(this);
     }
     else
     {
         Destroy(gameObject);
     }
 }
        // Set up abilities + teach abilities to entities logic
        #region
        public static void TeachAbilityToLivingEntity(LivingEntity entity, string abilityName)
        {
            // Create a duplicate ability from the ability data in ability library
            // DONT USE THE ABILITY IN THE LIBRARY

            // Get ability data
            Ability data = AbilityLibrary.GetAbilityByName(abilityName);

            // Create a duplicate ability from data
            Ability newAbility = new Ability(data);

            entity.MyAbilities.Add(newAbility);
        }
Beispiel #11
0
    public Dagger(AbilityLibrary scriptRef) : base()
    {
        //Type = WeaponType.DAGGER;
        lib      = scriptRef;
        ItemName = "Dagger";
        SkillSet = new Ability[4];
        //for (int i = 0; i < 4; i++)
        //{
        //  SkillSet[i] = lib.AbilityDictionary["Slash"];
        //}

        ////Denoting abilities available from delegates. Uses player-readable name of ability as key in the dictionary.
        //SelectedAbilities[0] = lib.AbilityDictionary[SkillSet[0].abilityName].UseAbility;
        //SelectedAbilities[1] = lib.AbilityDictionary[SkillSet[1].abilityName].UseAbility;
        //SelectedAbilities[2] = lib.AbilityDictionary[SkillSet[2].abilityName].UseAbility;
        //SelectedAbilities[3] = lib.AbilityDictionary[SkillSet[3].abilityName].UseAbility;
    }
Beispiel #12
0
 public void CopyStats(Weapon original)
 {
     type               = original.type;
     name               = original.name;
     might              = original.might;
     intelligence       = original.intelligence;
     dexterity          = original.dexterity;
     durability         = original.durability;
     durabilityMax      = original.durabilityMax;
     levelReq           = original.levelReq;
     itemLevel          = original.itemLevel;
     levelLimit         = original.levelLimit;
     weaponSkillSet     = original.weaponSkillSet;
     selectedAbilitySet = original.selectedAbilitySet;
     bonusHealth        = original.bonusHealth;
     SkillSet           = original.SkillSet;
     lib = original.lib;
 }
Beispiel #13
0
    public TwinDaggers(AbilityLibrary scriptRef) : base()
    {
        //Type = WeaponType.TWINDAGGERS;
        lib      = scriptRef;
        SkillSet = new Ability[4];
        ItemName = "Twin Daggers";
        //for (int i = 0; i < 4; i++)
        //{
        //  SkillSet[i] = lib.AbilityDictionary["Slash"];
        //}

        //SkillSet[0] = lib.AbilityDictionary["Ghost Strike"];
        //SkillSet[1] = lib.AbilityDictionary["Heart Strike"];
        //SkillSet[2] = lib.AbilityDictionary["Shadewalk"];
        //SkillSet[3] = lib.AbilityDictionary["Lunging Swipe"];

        ////Denoting abilities available from delegates. Uses player-readable name of ability as key in the dictionary.
        //SelectedAbilities[0] = lib.AbilityDictionary[SkillSet[0].abilityName].UseAbility;
        //SelectedAbilities[1] = lib.AbilityDictionary[SkillSet[1].abilityName].UseAbility;
        //SelectedAbilities[2] = lib.AbilityDictionary[SkillSet[2].abilityName].UseAbility;
        //SelectedAbilities[3] = lib.AbilityDictionary[SkillSet[3].abilityName].UseAbility;
    }
    // Update is called once per frame
    private void Update()
    {
        if (RecipeCrafter.IsUsingInput)
        {
            return;
        }

        if (selectedWeapon == null && setDefault)
        {
            selectedWeapon = Player_Accessor_Script.EquipmentScript.FetchItemSlot(0);
            setDefault     = false;
        }
        for (int i = 0; i < 4; i++)
        {
            Weapon temp = Player_Accessor_Script.EquipmentScript.FetchItemSlot(i);
            if (temp == null)
            {
                continue;
            }


            //Fetches the sprite for the weapon with a look-up table.
            weaponParent.transform.GetChild(i).GetComponent <Image>().sprite = temp.Icon;
        }

        if (selectedWeapon != null)
        {
            for (int j = 0; j < 4; j++)
            {
                if (selectedWeapon.SkillSet[j] != null)
                {
                    abilityParent.GetChild(j).GetComponent <Image>().sprite = selectedWeapon.SkillSet[j].skillIcon;
                }
                else
                {
                    abilityParent.GetChild(j).GetComponent <Image>().sprite = defaultIcon;
                }
            }

            List <Ability> tempList = AbilityLibrary.FetchSkillList(selectedWeapon.Type.ToString());
            if (abilitySlotParent.childCount == 0 && selectedWeapon != null)
            {
                for (int i = 0; i < tempList.Count; i++)
                {
                    GameObject temp = Instantiate(AbilitySlotPrefab, abilitySlotParent);
                }
            }

            //Sorting Abilities by level requirement
            tempList.Sort((q1, q2) => q1.SkillLevelRequirement.CompareTo(q2.SkillLevelRequirement));

            //Describing Header
            Transform skillHeader = transform.Find("Window/Header/SkillSection");
            skillHeader.Find("WeaponIcon").GetComponent <Image>().sprite = selectedWeapon.Icon;
            skillHeader.Find("Weapon").GetComponent <Text>().text        = selectedWeapon.ItemName;
            skillHeader.Find("SkillName").GetComponent <Text>().text     = selectedWeapon.SkillRequired;
            Skills skillref = Player_Skills_Script.ConvertStringToSkill(selectedWeapon.SkillRequired);
            skillHeader.Find("Level").GetComponent <Text>().text = "Lv.\n" + Player_Accessor_Script.SkillsScript.SkillDetails.skillList[skillref].maxLevel;

            for (int i = 0; i < tempList.Count; i++)
            {
                Transform cardEntry = abilitySlotParent.GetChild(i);
                cardEntry.name = tempList[i].abilityName;
                cardEntry.GetComponent <CanvasGroup>().interactable         = Player_Accessor_Script.SkillsScript.GetSkill(tempList[i].SkillRequired).currLevel >= tempList[i].SkillLevelRequirement;
                cardEntry.Find("BG/Icon").GetComponent <Image>().sprite     = tempList[i].skillIcon;
                cardEntry.Find("BG/TextBG/Text").GetComponent <Text>().text = tempList[i].abilityName;

                //Description Stuff
                cardEntry.Find("Description/TextBG/Text").GetComponent <Text>().text = tempList[i].SkillDescription;
                if (tempList[i].ModifiedByStats)
                {
                    cardEntry.Find("Description/MightScale/Might").GetComponent <Text>().text               = (tempList[i].MightRatio * 100).ToString("n1") + "%\n" + (tempList[i].MightRatio * eqRef.Might).ToString("n1");
                    cardEntry.Find("Description/DexterityScale/Dexterity").GetComponent <Text>().text       = (tempList[i].DexterityRatio * 100).ToString("n1") + "%\n" + (tempList[i].DexterityRatio * eqRef.Dexterity).ToString("n1");
                    cardEntry.Find("Description/IntelligenceScale/Intelligence").GetComponent <Text>().text = (tempList[i].IntelligenceRatio * 100).ToString("n1") + "%\n" + (tempList[i].IntelligenceRatio * eqRef.Intelligence).ToString("n1");
                }
                else
                {
                    cardEntry.Find("Description/MightScale/Might").GetComponent <Text>().text               = "N/A";
                    cardEntry.Find("Description/DexterityScale/Dexterity").GetComponent <Text>().text       = "N/A";
                    cardEntry.Find("Description/IntelligenceScale/Intelligence").GetComponent <Text>().text = "N/A";
                }
                cardEntry.Find("Description/LevelReq/Text").GetComponent <Text>().text = "Lv.\n" + tempList[i].SkillLevelRequirement;
            }
        }
        else
        {
            for (int j = 0; j < 4; j++)
            {
                abilityParent.GetChild(j).GetComponent <Image>().sprite = defaultIcon;
            }
        }

        if (ind != prevInd)
        {
            selectedWeapon = Player_Accessor_Script.EquipmentScript.FetchItemSlot(ind);
            //for (int i = 0; i < abilitySlotParent.childCount; i++)
            while (abilitySlotParent.childCount > 0)
            {
                DestroyImmediate(abilitySlotParent.GetChild(0).gameObject);
            }

            if (selectedWeapon != null)
            {
                List <Ability> tempList = AbilityLibrary.FetchSkillList(selectedWeapon.Type.ToString());
                for (int i = 0; i < tempList.Count; i++)
                {
                    GameObject temp = Instantiate(AbilitySlotPrefab, abilitySlotParent);
                }
            }
            prevInd = ind;
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            canvas.alpha          = 0;
            canvas.blocksRaycasts = false;
            canvas.interactable   = false;
        }

        if (Input.GetKeyDown(KeybindManager.Keybinds[KeybindFunction.I_WEAPON_ABILITIES]))
        {
            canvas.alpha = Mathf.Abs(canvas.alpha - 1);
            if (canvas.alpha == 1)
            {
                Interface_Controller.instance.InterfaceEvents["AbilityInterfaceOpen"].Invoke();
            }
            canvas.interactable   = !canvas.interactable;
            canvas.blocksRaycasts = !canvas.blocksRaycasts;
        }
    }
Beispiel #15
0
    private void Awake()
    {
        if (_instance != null && _instance != this)
        {
            Destroy(this.gameObject);
        }
        else
        {
            _instance = this;

            canvasTransform = GameObject.FindGameObjectWithTag("Canvas").transform;
            boardTransform  = GameObject.FindGameObjectWithTag("Board").transform;
            mainPlayer      = new PlayableCharacter(80, "Carlos", new Energy(3), CharacterModelLibrary.KnightCharacterModel());


            // mainPlayer.AddCardToDeckById(5);
            mainPlayer.OnCharacterDead += CheckCombatEndCondition;
            mainPlayer.AddCardToDeck(CardLibrary.Charge());
            mainPlayer.AddCardToDeck(CardLibrary.ShrugItOff());
            // mainPlayer.AddCardToDeck(CardLibrary.DeadlyPoison());
            mainPlayer.AddCardToDeck(CardLibrary.GetBehind());
            mainPlayer.AddCardToDeck(CardLibrary.TwinStrike());
            mainPlayer.AddCardToDeck(CardLibrary.TwinStrike());
            mainPlayer.AddCardToDeck(CardLibrary.TwinStrike());
            mainPlayer.AddCardToDeck(CardLibrary.TwinStrike());
            mainPlayer.AddCardToDeck(CardLibrary.TwinStrike());
            mainPlayer.AddCardToDeck(CardLibrary.TwinStrike());
            mainPlayer.AddCardToDeck(CardLibrary.TwinStrike());
            mainPlayer.AddCardToDeck(CardLibrary.Strike());
            // mainPlayer.AddCardToDeck(CardLibrary.Strike());
            // mainPlayer.AddCardToDeck(CardLibrary.Strike());
            // mainPlayer.AddCardToDeck(CardLibrary.Thunder());
            // mainPlayer.AddCardToDeck(CardLibrary.Bash());
            mainPlayer.abilities.Add(AbilityLibrary.MoveLeft());
            mainPlayer.abilities.Add(AbilityLibrary.MoveRight());
            mainPlayer.abilities.Add(AbilityLibrary.Strike());

            // Character ally = new NonPlayableCharacter(80,"Roberto",new Energy(2),CharacterModelLibrary.KnightCharacterModel());
            // ally.AddCardToDeck(CardLibrary.GetBehind());
            // Character ally2 = new Character(80,"Mario",new Energy(3));
            List <Character> allyTeam = new List <Character>();
            MoveCharacterToBoardColumn(mainPlayer, 0);
            // MoveCharacterToBoardColumn(ally,1);
            // MoveCharacterToBoardColumn(mainPlayer,0);
            // MoveCharacterToBoardColumn(mainPlayer,0);
            allyTeam.Add(mainPlayer);
            // allyTeam.Add(mainPlayer);
            // allyTeam.Add(mainPlayer);
            // ally.TurnRight();
            // allyTeam.Add(ally);
            // allyTeam.Add(ally2);
            teams.Add(allyTeam);

            List <Character> NpcTeam = new List <Character>();
            teams.Add(NpcTeam);


            Character Npc = new NonPlayableCharacter(80, "bicho", new Energy(3), CharacterModelLibrary.GoblinCharacterModel());
            Npc.AddCardToDeck(CardLibrary.Thrash());
            NpcTeam.Add(Npc);
            MoveCharacterToBoardColumn(Npc, 1);
            Npc.OnCharacterDead += CheckCombatEndCondition;

            Character Npc2 = new NonPlayableCharacter(80, "bicho2", new Energy(3), CharacterModelLibrary.GoblinCharacterModel());
            Npc2.AddCardToDeck(CardLibrary.Bellow());
            NpcTeam.Add(Npc2);
            MoveCharacterToBoardColumn(Npc2, 1);
            Npc2.OnCharacterDead += CheckCombatEndCondition;



            // NpcTeam.Add(Npc2);
            // MoveCharacterToBoardColumn(Npc2,1);
            // MoveCharacterToBoardColumn(Npc2,3);
            // MoveCharacterToBoardColumn(Npc2,4);
            // MoveCharacterToBoardColumn(Npc2,5);
            // MoveCharacterToBoardColumn(Npc,3);
            // MoveCharacterToBoardColumn(Npc,4);
            // MoveCharacterToBoardColumn(Npc,4);
            // MoveCharacterToBoardColumn(Npc,4);
            // MoveCharacterToBoardColumn(Npc,1);
            InstanceCharacters();
        }
    }
Beispiel #16
0
 private void Awake()
 {
     Instance = this;
     //PopulateAbilityLibrary();
 }