| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -265,6 +265,9 @@ public class CharacterSkill extends AbstractGameObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this.ownerUID = mob.getObjectUUID(); | 
					 | 
					 | 
					 | 
					        this.ownerUID = mob.getObjectUUID(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this.isMobOwner = true; | 
					 | 
					 | 
					 | 
					        this.isMobOwner = true; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        boolean isGuard = mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN) || mob.agentType.equals(Enum.AIAgentType.GUARDMINION); | 
					 | 
					 | 
					 | 
					        boolean isGuard = mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN) || mob.agentType.equals(Enum.AIAgentType.GUARDMINION); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        if(isGuard) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            boolean poop = true; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        calculateMobBaseAmount(isGuard); | 
					 | 
					 | 
					 | 
					        calculateMobBaseAmount(isGuard); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        calculateModifiedAmount(isGuard); | 
					 | 
					 | 
					 | 
					        calculateModifiedAmount(isGuard); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this.skillType = CharacterSkills.GetCharacterSkillByToken(this.skillsBase.getToken()); | 
					 | 
					 | 
					 | 
					        this.skillType = CharacterSkills.GetCharacterSkillByToken(this.skillsBase.getToken()); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1036,15 +1039,15 @@ public class CharacterSkill extends AbstractGameObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //Get any rune bonus
 | 
					 | 
					 | 
					 | 
					        //Get any rune bonus
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float bonus = 0f; | 
					 | 
					 | 
					 | 
					        float bonus = 0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //TODO SKILLS RUNES
 | 
					 | 
					 | 
					 | 
					        //TODO SKILLS RUNES
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					        float base = 7f; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        float statMod = 0.5f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this) != null && CharacterSkill.GetOwner(this).getBonuses() != null) { | 
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this) != null && CharacterSkill.GetOwner(this).getBonuses() != null) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //Get bonuses from runes
 | 
					 | 
					 | 
					 | 
					            //Get bonuses from runes
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            bonus = CharacterSkill.GetOwner(this).getBonuses().getSkillBonus(this.skillsBase.sourceType); | 
					 | 
					 | 
					 | 
					            bonus = CharacterSkill.GetOwner(this).getBonuses().getSkillBonus(this.skillsBase.sourceType); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //Get Base skill for unmodified stats
 | 
					 | 
					 | 
					 | 
					        //Get Base skill for unmodified stats
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float base = 7f; | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float statMod = 0.5f; | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (this.skillsBase.getStrMod() > 0) | 
					 | 
					 | 
					 | 
					        if (this.skillsBase.getStrMod() > 0) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            statMod += (float) this.skillsBase.getStrMod() * (float) ((Mob) CharacterSkill.GetOwner(this)).getMobBase().getMobBaseStats().getBaseStr() / 100f; | 
					 | 
					 | 
					 | 
					            statMod += (float) this.skillsBase.getStrMod() * (float) ((Mob) CharacterSkill.GetOwner(this)).getMobBase().getMobBaseStats().getBaseStr() / 100f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (this.skillsBase.getDexMod() > 0) | 
					 | 
					 | 
					 | 
					        if (this.skillsBase.getDexMod() > 0) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1059,6 +1062,7 @@ public class CharacterSkill extends AbstractGameObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            statMod = 1f; | 
					 | 
					 | 
					 | 
					            statMod = 1f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        else if (statMod > 600) | 
					 | 
					 | 
					 | 
					        else if (statMod > 600) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            statMod = 600f; | 
					 | 
					 | 
					 | 
					            statMod = 600f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        base += CharacterSkill.baseSkillValues[(int) statMod]; | 
					 | 
					 | 
					 | 
					        base += CharacterSkill.baseSkillValues[(int) statMod]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (base + bonus < 1f) | 
					 | 
					 | 
					 | 
					        if (base + bonus < 1f) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1079,15 +1083,16 @@ public class CharacterSkill extends AbstractGameObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //Get any rune bonus
 | 
					 | 
					 | 
					 | 
					        //Get any rune bonus
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float bonus = 0f; | 
					 | 
					 | 
					 | 
					        float bonus = 0f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        float base = 7f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        float statMod = 0.5f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this) != null && CharacterSkill.GetOwner(this).getBonuses() != null) { | 
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this) != null && CharacterSkill.GetOwner(this).getBonuses() != null) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //Get bonuses from runes
 | 
					 | 
					 | 
					 | 
					            //Get bonuses from runes
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            bonus = CharacterSkill.GetOwner(this).getBonuses().getSkillBonus(this.skillsBase.sourceType); | 
					 | 
					 | 
					 | 
					            bonus = CharacterSkill.GetOwner(this).getBonuses().getSkillBonus(this.skillsBase.sourceType); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //Get Base skill for modified stats
 | 
					 | 
					 | 
					 | 
					            //Get Base skill for modified stats
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //TODO this fomula needs verified
 | 
					 | 
					 | 
					 | 
					            //TODO this fomula needs verified
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float base = 7f; | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float statMod = 0.5f; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if (this.skillsBase.getStrMod() > 0) | 
					 | 
					 | 
					 | 
					            if (this.skillsBase.getStrMod() > 0) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                statMod += (float) this.skillsBase.getStrMod() * (float) CharacterSkill.GetOwner(this).getStatStrCurrent() / 100f; | 
					 | 
					 | 
					 | 
					                statMod += (float) this.skillsBase.getStrMod() * (float) CharacterSkill.GetOwner(this).getStatStrCurrent() / 100f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if (this.skillsBase.getDexMod() > 0) | 
					 | 
					 | 
					 | 
					            if (this.skillsBase.getDexMod() > 0) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1102,12 +1107,13 @@ public class CharacterSkill extends AbstractGameObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                statMod = 1f; | 
					 | 
					 | 
					 | 
					                statMod = 1f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            else if (statMod > 600) | 
					 | 
					 | 
					 | 
					            else if (statMod > 600) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                statMod = 600f; | 
					 | 
					 | 
					 | 
					                statMod = 600f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        base += CharacterSkill.baseSkillValues[(int) statMod]; | 
					 | 
					 | 
					 | 
					        base += CharacterSkill.baseSkillValues[(int) statMod]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        SourceType sourceType = SourceType.GetSourceType(this.skillsBase.getNameNoSpace()); | 
					 | 
					 | 
					 | 
					        SourceType sourceType = SourceType.GetSourceType(this.skillsBase.getNameNoSpace()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        //Get any rune, effect and item bonus
 | 
					 | 
					 | 
					 | 
					        //Get any rune, effect and item bonus
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this).getBonuses() != null) { | 
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this) != null && CharacterSkill.GetOwner(this).getBonuses() != null) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //add bonuses from effects/items and runes
 | 
					 | 
					 | 
					 | 
					            //add bonuses from effects/items and runes
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            base += bonus + CharacterSkill.GetOwner(this).getBonuses().getFloat(ModType.Skill, sourceType); | 
					 | 
					 | 
					 | 
					            base += bonus + CharacterSkill.GetOwner(this).getBonuses().getFloat(ModType.Skill, sourceType); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1119,7 +1125,7 @@ public class CharacterSkill extends AbstractGameObject { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        float modAmount = this.baseAmount + calculateAmountAfterTrains(); | 
					 | 
					 | 
					 | 
					        float modAmount = this.baseAmount + calculateAmountAfterTrains(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this).getBonuses() != null) { | 
					 | 
					 | 
					 | 
					        if (CharacterSkill.GetOwner(this) != null && CharacterSkill.GetOwner(this).getBonuses() != null) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            //Multiply any percent bonuses
 | 
					 | 
					 | 
					 | 
					            //Multiply any percent bonuses
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            modAmount *= (1 + CharacterSkill.GetOwner(this).getBonuses().getFloatPercentAll(ModType.Skill, sourceType)); | 
					 | 
					 | 
					 | 
					            modAmount *= (1 + CharacterSkill.GetOwner(this).getBonuses().getFloatPercentAll(ModType.Skill, sourceType)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        } | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |