Compare commits
	
		
			15 Commits 
		
	
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | f5bbc9eee0 | 1 year ago | 
|  | 4092f7f38f | 1 year ago | 
|  | a4eea2173d | 1 year ago | 
|  | d193a12554 | 1 year ago | 
|  | 96387aa4f4 | 1 year ago | 
|  | 785a5eb736 | 1 year ago | 
|  | dd4f4bffe9 | 1 year ago | 
|  | 2cdeaa4d66 | 1 year ago | 
|  | 0430fb3e42 | 1 year ago | 
|  | 5c34853293 | 1 year ago | 
|  | d991a4f2d8 | 1 year ago | 
|  | d87d3e2f41 | 1 year ago | 
|  | edf11f166f | 1 year ago | 
|  | e5c1dc7bcb | 1 year ago | 
|  | 9542034e32 | 1 year ago | 
				 10 changed files with 321 additions and 19 deletions
			
			
		| @ -0,0 +1,61 @@ | |||||||
|  | package engine.devcmd.cmds; | ||||||
|  | 
 | ||||||
|  | import engine.devcmd.AbstractDevCmd; | ||||||
|  | import engine.gameManager.PowersManager; | ||||||
|  | import engine.gameManager.ZoneManager; | ||||||
|  | import engine.objects.*; | ||||||
|  | 
 | ||||||
|  | public class SetCampLevelCmd extends AbstractDevCmd { | ||||||
|  |     public SetCampLevelCmd() { super("setcamplevel"); } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void _doCmd(PlayerCharacter pcSender, String[] args, AbstractGameObject target) { | ||||||
|  | 
 | ||||||
|  |         if (args.length > 1) | ||||||
|  |         { | ||||||
|  |              this.sendUsage(pcSender); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         int targetLevel = 0; | ||||||
|  |         if (args.length == 1) { | ||||||
|  |             try { | ||||||
|  |                 targetLevel = Integer.parseInt(args[0]); | ||||||
|  |             } catch (NumberFormatException nfe) { | ||||||
|  |                 throwbackError(pcSender, "Argument MUST be integer.  Received: " + args[0]); | ||||||
|  |             } catch (Exception e) { | ||||||
|  |                 throwbackError(pcSender, "Unknown command parsing provided camp level: " + args[0]); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if ((target instanceof Mob)) | ||||||
|  |         { | ||||||
|  |             // Get the camp that owns the targeted Mob
 | ||||||
|  |             Zone campZone = ((Mob) target).parentZone; | ||||||
|  | 
 | ||||||
|  |             // Make sure that the zone we're targeting is valid for action
 | ||||||
|  |             if (campZone == null || | ||||||
|  |                     campZone.zoneMobSet.isEmpty() || | ||||||
|  |                     campZone.isPlayerCity()) { | ||||||
|  |                 throwbackError(pcSender, "Current zone must own mobs, and NOT be a city."); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             campZone.setCampLvl(targetLevel); | ||||||
|  |         } | ||||||
|  |         else if (target instanceof PlayerCharacter) | ||||||
|  |         { | ||||||
|  |             PlayerCharacter pc = (PlayerCharacter)target; | ||||||
|  |             PowersManager.applyPower(pc, pc, pc.getLoc(), "CMP-001", targetLevel, false); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected String _getUsageString() { | ||||||
|  |         return "Sets the level of the currently occupied camp to the desired level"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected String _getHelpString() { | ||||||
|  |         return "'./setcamplevel levelNum'"; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,84 @@ | |||||||
|  | package engine.util; | ||||||
|  | 
 | ||||||
|  | import engine.objects.Zone; | ||||||
|  | 
 | ||||||
|  | public class ZoneLevel { | ||||||
|  | 
 | ||||||
|  |     private static final float healthPctPerLevel = (float)0.2; | ||||||
|  |     private static final float atrPctPerLevel = (float)0.2; | ||||||
|  |     private static final float defPctPerLevel = (float)0.2; | ||||||
|  |     private static final float lootPctPerLevel = (float)0.1; | ||||||
|  |     private static final float goldPctPerLevel = (float)0.2; | ||||||
|  | 
 | ||||||
|  |     public static final int campLvlAnnounceThreshold = 5; | ||||||
|  |     public static final int campMaxLvl = 10; | ||||||
|  | 
 | ||||||
|  |     public static final int queueLengthToLevelUp = 5; | ||||||
|  |     public static final int msToLevelDown = 60 * 1000; | ||||||
|  |     public static final int msTolevelUp = 60 * 1000; | ||||||
|  |     public static final long msDelayToCampLevel = 60 * 1000; | ||||||
|  | 
 | ||||||
|  |     private static final String[] nameMap = | ||||||
|  |             { | ||||||
|  |               "", | ||||||
|  |               " I", | ||||||
|  |               " II", | ||||||
|  |               " III", | ||||||
|  |               " IV", | ||||||
|  |               " V", | ||||||
|  |               " VI", | ||||||
|  |               " VII", | ||||||
|  |               " VIII", | ||||||
|  |               " IX", | ||||||
|  |               " X" | ||||||
|  |             }; | ||||||
|  | 
 | ||||||
|  |     public static String getNameSuffix(Zone zone) | ||||||
|  |     { | ||||||
|  |         try { | ||||||
|  |             return nameMap[zone.getCampLvl()]; | ||||||
|  |         } | ||||||
|  |         catch (Exception ignored) | ||||||
|  |         { | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return ""; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static float getMaxHealthPctModifier(Zone zone) | ||||||
|  |     { | ||||||
|  |         return getGenericModifier(zone, healthPctPerLevel); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static float getAtrPctModifier(Zone zone) | ||||||
|  |     { | ||||||
|  |         return getGenericModifier(zone, atrPctPerLevel); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static float getDefPctModifier(Zone zone) | ||||||
|  |     { | ||||||
|  |         return getGenericModifier(zone, defPctPerLevel); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static float getLootDropModifier(Zone zone) | ||||||
|  |     { | ||||||
|  |         return getGenericModifier(zone, lootPctPerLevel); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static float getGoldDropModifier(Zone zone) | ||||||
|  |     { | ||||||
|  |         return getGenericModifier(zone, goldPctPerLevel); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private static float getGenericModifier(Zone zone, float modifierPerLevel) | ||||||
|  |     { | ||||||
|  |         float modifier = (float)1.0; | ||||||
|  | 
 | ||||||
|  |         if (zone != null) | ||||||
|  |         { | ||||||
|  |             modifier += zone.getCampLvl() * modifierPerLevel; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return modifier; | ||||||
|  |     } | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in new issue