Exemplo n.º 1
0
 void SetClassStats(MercClass mercClass)
 {
     if (mercClass == MercClass.Soldier)
     {
         healthMax = 100;
         startArmor = 50;
         stamina = 3;
         ammo = 2;
     }
     if (mercClass == MercClass.Bandit)
     {
         healthMax = 100;
         startArmor = 40;
         stamina = 4;
         ammo = 1;
     }
     if (mercClass == MercClass.Gunman)
     {
         healthMax = 100;
         startArmor = 50;
         stamina = 2;
         ammo = 3;
     }
     if (mercClass == MercClass.Mercenary)
     {
         healthMax = 100;
         startArmor = 80;
         stamina = 2;
         ammo = 2;
     }
 }
Exemplo n.º 2
0
    static List<PrepCard> GenerateClassPrepCards(MercClass mercClass)
    {
        List<PrepCard> result = new List<PrepCard>();

        if (mercClass == MercClass.Soldier)
            result = SoldierCards.GetClassPrepCards();
        if (mercClass == MercClass.Bandit)
            result = BanditCards.GetClassPrepCards();
        if (mercClass == MercClass.Gunman)
            result = GunmanCards.GetClassPrepCards();
        if (mercClass == MercClass.Mercenary)
            result = MercenaryCards.GetClassPrepCards();

        return result;
    }
Exemplo n.º 3
0
    void GeneratePartyMember(string memberName)
    {
        MapRegion startingRegion = MapManager.main.GetTown();

        var classtypes=System.Enum.GetValues(typeof(MercClass));
        myClass = (MercClass)classtypes.GetValue(Random.Range(0,classtypes.Length));
        combatDeck = GenerateClassCombatDeck(myClass);
        classPrepCards = GenerateClassPrepCards(myClass);
        weaponPrepCards = GenerateDefaultWeaponPrepCards();

        SetClassStats(myClass);

        //Pick color out of ones left
        //worldCoords=startingCoords;
        currentRegion=startingRegion;
        startingRegion.localPartyMembers.Add(this);

        color = GetPortraitColor();

        //Randomly pick out a specialty
        List<Trait> possibleSpecialtyPerks=Trait.GenerateRandomSkillTree(5);

        //Pick out a starting specialty perk
        Skill startingLearnedSkill=possibleSpecialtyPerks[Random.Range(0,possibleSpecialtyPerks.Count)] as Skill;
        startingLearnedSkill.learned=true;
        traits.Add(startingLearnedSkill);

        //Fill out trait list
        List<Trait> possibleGenericPerks=Trait.GetTraitList();
        //Deactivate the opposite traits of the starting perk
        foreach(Trait genericPerk in possibleGenericPerks)
        {
            if (genericPerk.GetType()==startingLearnedSkill.oppositePerk)
            {
                if (possibleGenericPerks.Contains(genericPerk)) possibleGenericPerks.Remove(genericPerk);
                break;
            }
        }

        //Randomly pick out generic perks
        int necessaryPerkCount=2;
        int addedPerksCount=0;
        while (addedPerksCount<necessaryPerkCount && possibleGenericPerks.Count>0)
        {
            Trait newPerk=possibleGenericPerks[Random.Range(0,possibleGenericPerks.Count)];
            traits.Add(newPerk);
            addedPerksCount++;
            possibleGenericPerks.Remove(newPerk);
            if (newPerk.oppositePerk!=null)
            {
                foreach (Trait possibleGenericPerk in possibleGenericPerks)
                {
                    if (possibleGenericPerk.GetType()==newPerk.oppositePerk)
                    {
                        if (possibleGenericPerks.Contains(possibleGenericPerk)) possibleGenericPerks.Remove(possibleGenericPerk);
                        break;
                    }
                }
                foreach (Trait possibleSpecialtyPerk in possibleSpecialtyPerks)
                {
                    if (possibleSpecialtyPerk.GetType()==newPerk.oppositePerk)
                    {
                        if (possibleSpecialtyPerks.Contains(possibleSpecialtyPerk)) possibleSpecialtyPerks.Remove(possibleSpecialtyPerk);
                        break;
                    }
                }
            }
        }

        name=memberName;

        baseMaxStamina=10;
        armorValue=0;
        maxCarryCapacity=4;//

        hasLight=false;
        isCook=false;
        isMedic=false;
        isLockExpert=false;
        isScout=false;
        foreach (Trait myPerk in traits)
        {
            if (myPerk.GetType().BaseType==typeof(Trait)) myPerk.ActivateEffect(this);
            else
            {
                Skill mySkill=myPerk as Skill;
                if (mySkill.learned) mySkill.ActivateEffect(this);
            }
        }
        //make sure perks trigger before these to properly use modified values of maxHealth and maxStamina
        health = healthMax;
        currentMaxStamina=baseMaxStamina;
        UpdateCurrentCarryCapacity();
        equippedRangedWeapon=null;
    }
Exemplo n.º 4
0
    static CombatDeck GenerateClassCombatDeck(MercClass mercClass)
    {
        CombatDeck result = new CombatDeck();

        if (mercClass == MercClass.Soldier)
            result = SoldierCards.GetClassCards();
        if (mercClass == MercClass.Bandit)
            result = BanditCards.GetClassCards();
        if (mercClass == MercClass.Gunman)
            result = GunmanCards.GetClassCards();
        if (mercClass==MercClass.Mercenary)
            result = MercenaryCards.GetClassCards();
        //result = new CombatDeck();
        //result.AddCards(typeof(Headshot),2);
        //result.AddCards(typeof(Hipfire), 2);

        return result;
    }