Exemplo n.º 1
0
        public void InitFromPlayer(Player player)
        {
            Id   = player.Id;
            Name = player.Name;
            AvailableAttributePoints = player.AvailableAttributePoints;
            _levelBefore             = player._levelBefore;
            Stats.Set(player.Stats);
            Inventory.Reset();
            Inventory.AddInventory(player.Inventory);
            Position.Set(player.Position.X, player.Position.Y);

            CombatSkills.Clear();
            foreach (int combatSkill in player.CombatSkills)
            {
                CombatSkills.Add(combatSkill);
            }

            MagicSkills.Clear();
            foreach (int magicSkill in player.MagicSkills)
            {
                MagicSkills.Add(magicSkill);
            }

            CurrentAttackSkill = player.CurrentAttackSkill;
            EquippedWeapon     = player.EquippedWeapon;
            for (int i = 0; i < player.EquippedItems.Length; i++)
            {
                EquippedItems[i] = player.EquippedItems[i];
            }
        }
Exemplo n.º 2
0
 private void UpdateSkills()
 {
     if (mySkills == null) //need to check for this in case this is called while loading saved parts before default parts are loaded
     {
         mySkills = GetComponent <CombatSkills>();
     }
     attackReaction = mySkills.GetAttackReactionSkills();
 }
Exemplo n.º 3
0
 protected override void GatherComponents()
 {
     base.GatherComponents();
     equipmentManager = GetComponent <EquipmentManager>();
     inventory        = InventoryManager.GetInstance().GetInventory();
     wallet           = ScriptToolbox.GetInstance().GetPlayerWallet();
     myBody           = GetComponent <BodyPartController>();
     combatSkills     = GetComponent <CombatSkills>();
 }
Exemplo n.º 4
0
 void Start()
 {
     anim    = GetComponent <UnitAnimController>();
     myBrain = GetComponent <Brain>();
     rb      = GetComponent <Rigidbody2D>();
     sp      = transform.GetChild(0).GetComponent <SpriteRenderer>();
     skills  = GetComponent <CombatSkills>(); //down the line make this a callback where everytime speed is modified this will update as well
     SetDepth();
 }
Exemplo n.º 5
0
    // Start is called before the first frame update
    void Start()
    {
        combatManager = SingletonManager.Get <CombatManager>();
        combatSkills  = SingletonManager.Get <CombatSkills>();
        boardHandler  = SingletonManager.Get <BoardHandler>();

        //Add Listeners
        boardHandler.OnEndBoardInteraction.AddListener(AddToTeamAttackAmount);
        OnTeamAttackFull.AddListener(DoTeamAttack);
    }
Exemplo n.º 6
0
    private void Start()
    {
        boardHandler = SingletonManager.Get <BoardHandler>();
        fieldManager = SingletonManager.Get <FieldManager>();
        combatSkills = SingletonManager.Get <CombatSkills>();

        //Add Listener to Event
        boardHandler.OnEndBoardInteraction.AddListener(StartTurnBasedCombat);
        fieldManager.OnFieldInitialized.AddListener(GetTeams);
    }
Exemplo n.º 7
0
    void Start()
    {
        combatSkills  = SingletonManager.Get <CombatSkills>();
        boardHandler  = SingletonManager.Get <BoardHandler>();
        combatManager = SingletonManager.Get <CombatManager>();

        combatSkills.OnCastableSkillsUpdated.AddListener(UpdatePanels);
        boardHandler.OnDeselectTiles.AddListener(ResetDisplay);
        boardHandler.OnEndBoardInteraction.AddListener(ResetDisplay);
    }
Exemplo n.º 8
0
 public CharacterInfo(int sex, string name, float health, int level, int experience, Attributes attributes, CombatSkills combatSkills, List <int> traits)
 {
     characterName         = name;
     characterHealth       = health;
     characterSex          = sex;
     characterLevel        = level;
     characterExperience   = experience;
     characterAttributes   = attributes;
     characterCombatSkills = combatSkills;
     characterTraits       = traits;
 }
Exemplo n.º 9
0
 public CombatSkills(CombatSkills skillsIn)
 {
     brawling  = skillsIn.brawling;
     sword     = skillsIn.sword;
     axe       = skillsIn.axe;
     polearm   = skillsIn.polearm;
     bow       = skillsIn.bow;
     dodge     = skillsIn.dodge;
     armor     = skillsIn.armor;
     longsword = skillsIn.longsword;
 }
Exemplo n.º 10
0
    private void Start()
    {
        combatSkills  = SingletonManager.Get <CombatSkills>();
        combatManager = SingletonManager.Get <CombatManager>();

        //AddListener
        combatManager.OnInitialTeamSynced.AddListener(UpdateSkillDisplay);
        combatManager.OnCharacterDead.AddListener(delegate { UpdateSkillDisplay(); });
        combatManager.OnTutorialRoundEnd.AddListener(UpdateSkillDisplay);
        combatManager.OnCurrentRoundEnd.AddListener(UpdateSkillDisplay);
    }
Exemplo n.º 11
0
    protected override void LoadComponents()
    {
        base.LoadComponents();
        unitTraits        = GetComponent <UnitTraits>();
        unitRelationships = GetComponent <UnitRelationships>();
        unitController    = GetComponent <UnitController>();
        unitAnim          = GetComponent <UnitAnimController>();
        attackTimer       = GetComponent <AttackTimer>();
        bodyController    = GetComponent <BodyPartController>();
        combatSkills      = GetComponent <CombatSkills>();

        attack1Parts = bodyController.attack1Parts; //main
        attack2Parts = bodyController.attack2Parts; //off
    }
Exemplo n.º 12
0
    private void Start()
    {
        combatManager  = SingletonManager.Get <CombatManager>();
        boardHandler   = SingletonManager.Get <BoardHandler>();
        boardGenerator = SingletonManager.Get <BoardGenerator>();
        combatSkills   = SingletonManager.Get <CombatSkills>();
        teamAttack     = SingletonManager.Get <TeamAttack>();

        foreach (var item in DialogueList)
        {
            item.OnNextDialogueStart.AddListener(NextLineOfDialogue);
        }

        combatManager.OnCombatEnd.AddListener(HidePersistentPopUps);
    }
Exemplo n.º 13
0
    private void Attack()
    {
        AttackInfo         myAttack;
        AttackTimer        attackTimer = usm.attackTimer;
        BodyPartController myBody      = usm.bodyController;
        CombatSkills       mySkills    = usm.combatSkills;

        if (Random.Range(0, 100) <= 75)
        {
            if (!myBody.PartTooInjured(attack1Parts))
            {
                AttackAnimation();
                myAttack = mySkills.RequestAttackInfo(attack1Parts[0].MyWeapon());
            }
            else
            {
                string line = "<color=red>" + gameObject.name + " is too injured to attack with their " + attack1Parts[0].MyWeapon().name + "</color>";
                FloatingTextController.CreateFloatingText("Too injured!", transform, Color.red);
                BattleReport.AddToBattleReport(line);
                attackTimer.ResetAttackTimer(7f); //arbitrarily reset attack timer to prevent attack
                                                  //unit reactions -> run away if not player?
                return;
            }
        }
        else
        {
            if (!myBody.PartTooInjured(attack2Parts))
            {
                AttackAnimation();
                myAttack = mySkills.RequestAttackInfo(attack2Parts[0].MyWeapon());
            }
            else
            {
                string line = "<color=red>" + gameObject.name + " is too injured to attack with their " + attack2Parts[0].MyWeapon().name + "</color>";
                FloatingTextController.CreateFloatingText("Too injured!", transform, Color.red);
                BattleReport.AddToBattleReport(line);
                attackTimer.ResetAttackTimer(7f); //arbitrarily reset attack timer to prevent attack
                                                  //unit reactions -> run away if not player?
                return;
            }
        }
        Debug.Log(gameObject.name + " attacking with reset timer of " + myAttack.speed);
        targetBody.RecieveAttack(myAttack, transform); //should reset back to whatever weapon was used
        attackTimer.ResetAttackTimer(myAttack.speed);
    }
Exemplo n.º 14
0
    public float bleedBonus     = 0f; //how rapidly we bleed from this part

    private void Start()
    {
        //might not want these in bodyparts because they're going to get called in every single body part in the game!
        myBrain        = GetComponent <Brain>();
        myBody         = GetComponent <BodyPartController>();
        myCombatSkills = GetComponent <CombatSkills>();
        anim           = GetComponent <UnitAnimController>();
        ai             = GetComponent <UnitReactions>();
        stateMachine   = GetComponent <UnitStateMachine>();

        if (dollPart != null)
        {
            dollPart.Initialize(PackagePartInfo());
        }

        MyWeapon(); //run this to make sure we hve unarmed weapon
        //Debug.Log("assigning parts for " + this);
        //Debug.Log("my armortype is " + armorType);
    }
Exemplo n.º 15
0
    private void Start() //make private?
    {
        //unitReactions = GetComponent<UnitReactions>();
        stateMachine            = GetComponent <UnitStateMachine>();
        anim                    = GetComponent <UnitAnimController>();
        mySkills                = GetComponent <CombatSkills>();
        mySkills.onSkillGained += UpdateSkills;
        AddBodyParts();

        //if a unit doesn't have an equipment manager load default eqpmnt
        EquipmentManager e = GetComponent <EquipmentManager>();

        if (e == null)
        {
            GetComponent <DefaultEquipment>().EquipLoadout(this);
        }
        else
        {
            //let equipment handler load it's own default stuff if it needs to
            e.onEquipmentChanged += UpdateSkills;
        }
    }
Exemplo n.º 16
0
 // Use this for initialization
 void Start()
 {
     combatSkills = ScriptToolbox.GetInstance().GetPlayerManager().player.GetComponent <CombatSkills>();
     combatSkills.onSkillGained += UpdateCombatSkills;
     skillWindow.text            = "";
 }
Exemplo n.º 17
0
    protected void CreateCharacter(Vector3 spawnPosition)
    {
        int tempSex = UnityEngine.Random.Range(1, 3);

        //Debug.Log(tempSex);

        //Create base Attributes and Combat Skills
        Attributes   characterAttributes = new Attributes(CreateAttributes());
        CombatSkills combatSkills        = new CombatSkills(CreateCombatSkills(characterAttributes));

        //Create Character Info using previous stats, start characters at level 1
        characterInfo = new CharacterInfo(tempSex, CreateName(tempSex), CreateHealth(characterAttributes), 1, 1, characterAttributes, combatSkills, CreateTraits());

        for (int i = 0; i < characterInfo.characterTraits.Count; i++)
        {
            switch (characterInfo.characterTraits[i])
            {
            case 0:
                //Smart
                experienceModifier = 1.18f;
                break;

            case 1:
                //Dumb
                experienceModifier = 0.82f;
                break;

            case 2:
                //Brawler - Per Combat
                break;

            case 3:
                //HardWorker - Per Build
                break;

            case 4:
                //Lazy - Per Build
                break;

            case 5:
                //Fast
                agent.speed *= 1.18f;
                break;

            case 6:
                //Crazed - Per Combat
                break;
            }
        }

        //Set attack rate
        attackCooldownTime = 5 - (characterInfo.characterAttributes.nimbleness / 10);
        if (attackCooldownTime <= 0)
        {
            attackCooldownTime = 1.0f;
        }

        currentHealth = characterInfo.characterHealth;

        //Set spawn position
        transform.position = spawnPosition;
        CalculateNextLevelExperience();
    }