Browse Source

PLayerCharacter.java Cleanup

lakebane
FatBoy-DOTC 5 days ago
parent
commit
031fd24842
  1. 397
      src/engine/objects/PlayerCharacter.java

397
src/engine/objects/PlayerCharacter.java

@ -3133,26 +3133,8 @@ public class PlayerCharacter extends AbstractCharacter { @@ -3133,26 +3133,8 @@ public class PlayerCharacter extends AbstractCharacter {
public void calculateSpeedMod() {
// get base race speed modifer
//this is retarded. *** Refactor
// if (this.race != null) {
// int ID = this.race.getObjectUUID();
// if (ID == 2004 || ID == 2005)
// this.raceRunMod = 1.21f; // centaur run bonus 22%
//// else if (ID == 2017)
//// this.raceRunMod = 1.14f; // mino run bonus 15%
// else
// this.raceRunMod = 1;
// } else
// this.raceRunMod = 1;
float bonus = 1f;
// // TODO: hardcoded, as didnt have time to introduce DB column to base object
// if (baseClass.getName().equals("Fighter") || baseClass.getName().equals("Rogue"))
// bonus += .05f;
// get running skill
if (this.skills != null) {
CharacterSkill running = this.skills.get("Running");
@ -3205,14 +3187,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -3205,14 +3187,6 @@ public class PlayerCharacter extends AbstractCharacter {
return this.follow;
}
public int getLastGroupToInvite() {
return this.lastGroupToInvite;
}
public void setLastGroupToInvite(int value) {
this.lastGroupToInvite = value;
}
@Override
public float getAltitude() {
if (this.altitude < 0)
@ -3261,10 +3235,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -3261,10 +3235,6 @@ public class PlayerCharacter extends AbstractCharacter {
return this.loadedStaticObjects;
}
public void setLoadedStaticObjects(HashSet<AbstractWorldObject> value) {
this.loadedStaticObjects = value;
}
public boolean isTeleportMode() {
return teleportMode;
}
@ -3272,20 +3242,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -3272,20 +3242,6 @@ public class PlayerCharacter extends AbstractCharacter {
public void setTeleportMode(boolean teleportMode) {
this.teleportMode = teleportMode;
}
// public ConcurrentHashMap<Integer, FinishRecycleTimeJob>
// getRecycleTimers() {
// return this.recycleTimers;
// }
// public UsePowerJob getLastPower() {
// return this.lastPower;
// }
// public void setLastPower(UsePowerJob value) {
// this.lastPower = value;
// }
// public void clearLastPower() {
// this.lastPower = null;
// }
public long chatFloodTime(int chatOpcode, long chatTimeMilli, int qtyToSave) {
if (qtyToSave < 1)
return 0L; // disabled
@ -3799,22 +3755,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -3799,22 +3755,6 @@ public class PlayerCharacter extends AbstractCharacter {
return this.statStrCurrent - this.race.getStrStart() - this.baseClass.getStrMod();
}
public int getDexForClient() {
return this.statDexCurrent - this.race.getDexStart() - this.baseClass.getDexMod();
}
public int getConForClient() {
return this.statConCurrent - this.race.getConStart() - this.baseClass.getConMod();
}
public int getIntForClient() {
return this.statIntCurrent - this.race.getIntStart() - this.baseClass.getIntMod();
}
public int getSpiForClient() {
return this.statSpiCurrent - this.race.getSpiStart() - this.baseClass.getSpiMod();
}
public int getTrainsAvailable() {
return this.trainsAvailable.get();
}
@ -3852,15 +3792,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -3852,15 +3792,6 @@ public class PlayerCharacter extends AbstractCharacter {
}
ConcurrentHashMap<Integer, Item> equipped = this.charItemManager.getEquipped();
// // Reset passives
// if (this.bonuses != null) {
// this.bonuses.setBool("Block", false);
// this.bonuses.setBool("Parry", false);
// if (this.baseClass != null && this.baseClass.getUUID() == 2502)
// this.bonuses.setBool("Dodge", true);
// else
// this.bonuses.setBool("Dodge", false);
// }
// calculate atr and damage for each hand
calculateAtrDamageForWeapon(equipped.get(MBServerStatics.SLOT_MAINHAND), true, equipped.get(MBServerStatics.SLOT_OFFHAND));
calculateAtrDamageForWeapon(equipped.get(MBServerStatics.SLOT_OFFHAND), false, equipped.get(MBServerStatics.SLOT_MAINHAND));
@ -3985,17 +3916,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -3985,17 +3916,6 @@ public class PlayerCharacter extends AbstractCharacter {
max = (float) wb.getMaxDamage();
strBased = wb.isStrBased();
//
// Add parry bonus for weapon and allow parry if needed
// // Only Fighters and Thieves can Parry
// if ((this.baseClass != null && this.baseClass.getUUID() == 2500)
// || (this.promotionClass != null && this.promotionClass.getUUID() == 2520)) {
// if (wbMain == null || wbMain.getRange() < MBServerStatics.RANGED_WEAPON_RANGE)
// if (wbOff == null || wbOff.getRange() < MBServerStatics.RANGED_WEAPON_RANGE)
// this.bonuses.setBool("Parry", true);
// }
// }
}
if (this.effects != null && this.effects.containsKey("DeathShroud"))
@ -4479,36 +4399,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -4479,36 +4399,6 @@ public class PlayerCharacter extends AbstractCharacter {
return (amount - attackerLevel + this.getLevel()) / 4;
}
public float getPassiveChance1(ModType modType, SourceType sourceType, int attackerLevel, boolean fromCombat) {
if (this.skills == null || this.bonuses == null)
return 0f;
// must be allowed to use this passive
if (!this.bonuses.getBool(modType, sourceType))
return 0f;
// must not be stunned
if (this.bonuses.getBool(ModType.Stunned, SourceType.None))
return 0f;
// Get base skill amount
CharacterSkill sk = this.skills.get(sourceType.name());
float amount;
if (sk == null)
amount = CharacterSkill.getQuickMastery(this, modType.name());
else
amount = sk.getModifiedAmount();
// Add bonuses
amount += this.bonuses.getFloat(modType, sourceType);
// Add item bonuses and return
if (sourceType.equals(SourceType.Dodge) && !fromCombat)
return ((amount / 4) - attackerLevel + this.getLevel()) / 4;
else
return (amount - attackerLevel + this.getLevel()) / 4;
}
public float getRegenModifier(ModType type) {
float regen = 1f;
@ -4593,10 +4483,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -4593,10 +4483,6 @@ public class PlayerCharacter extends AbstractCharacter {
super.removeFromCache();
}
public void storeIgnoreListDB() {
}
public void updateSkillsAndPowersToDatabase() {
if (this.skills != null)
for (CharacterSkill skill : this.skills.values()) {
@ -4765,17 +4651,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -4765,17 +4651,6 @@ public class PlayerCharacter extends AbstractCharacter {
return true;
}
// Method is called by Server Heartbeat simulation tick.
// Stat regen and transform updates should go in here.
public boolean isNoTeleScreen() {
return noTeleScreen;
}
public void setNoTeleScreen(boolean noTeleScreen) {
this.noTeleScreen = noTeleScreen;
}
private double getDeltaTime() {
return (System.currentTimeMillis() - lastUpdateTime) * .001f;
@ -4817,30 +4692,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -4817,30 +4692,6 @@ public class PlayerCharacter extends AbstractCharacter {
return false;
}
public boolean isSwimming(Vector3fImmutable currentLoc) {
// If char is flying they aren't quite swimming
try {
float localAltitude = HeightMap.getWorldHeight(currentLoc);
Zone zone = ZoneManager.findSmallestZone(currentLoc);
if (zone.getSeaLevel() != 0) {
if (localAltitude < zone.getSeaLevel())
return true;
} else {
if (localAltitude < 0)
return true;
}
} catch (Exception e) {
Logger.info(this.getName() + e);
}
return false;
}
private static void forceRespawn(PlayerCharacter sourcePlayer) throws MsgSendException {
if (sourcePlayer == null)
@ -4897,11 +4748,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -4897,11 +4748,6 @@ public class PlayerCharacter extends AbstractCharacter {
while (this.level < 10) {
grantXP(Experience.getBaseExperience(this.level + 1) - this.exp);
}
//if(this.charItemManager != null && this.charItemManager.getGoldInventory() != null && this.charItemManager.getGoldInventory().getNumOfItems() < 1000) {
// this.getCharItemManager().addGoldToInventory(1000, false);
// this.getCharItemManager().addItemToInventory(new MobLoot(this, ItemBase.getItemBase(980066), 1, false).promoteToItem(this));
// this.getCharItemManager().updateInventory();
//}
}
if(this.isBoxed && !this.containsEffect(1672601862)) {
@ -5064,7 +4910,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5064,7 +4910,6 @@ public class PlayerCharacter extends AbstractCharacter {
ChatManager.chatSystemInfo(this,
"Arrived at End location. " + this.getEndLoc());
return;
//Next upda
}
setLoc(newLoc);
@ -5076,11 +4921,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5076,11 +4921,6 @@ public class PlayerCharacter extends AbstractCharacter {
if (this.getStamina() < 10)
MovementManager.sendOOS(this);
// if (MBServerStatics.MOVEMENT_SYNC_DEBUG || this.getDebug(1))
// Logger.info("MovementManager", "Updating movement current loc:" + this.getLoc().getX() + " " + this.getLoc().getZ()
// + " end loc: " + this.getEndLoc().getX() + " " + this.getEndLoc().getZ() + " distance " + this.getEndLoc().distance2D(this.getLoc()));
}
@Override
@ -5457,23 +5297,11 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5457,23 +5297,11 @@ public class PlayerCharacter extends AbstractCharacter {
return movementState;
}
public boolean isHasAnniversery() {
return hasAnniversery;
}
public void setHasAnniversery(boolean hasAnniversery) {
DbManager.PlayerCharacterQueries.SET_ANNIVERSERY(this, hasAnniversery);
this.hasAnniversery = hasAnniversery;
}
public int getSpamCount() {
return spamCount;
}
public void setSpamCount(int spamCount) {
this.spamCount = spamCount;
}
public String getHash() {
return hash;
}
@ -5499,10 +5327,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5499,10 +5327,6 @@ public class PlayerCharacter extends AbstractCharacter {
this.lastRealmID = lastRealmID;
}
public int getSubRaceID() {
return subRaceID;
}
public void setSubRaceID(int subRaceID) {
this.subRaceID = subRaceID;
}
@ -5515,29 +5339,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5515,29 +5339,6 @@ public class PlayerCharacter extends AbstractCharacter {
this.guildHistory = guildHistory;
}
public void moveTo(Vector3fImmutable endLoc) {
this.setInBuilding(-1);
this.setInFloorID(-1);
MoveToPointMsg moveToMsg = new MoveToPointMsg();
moveToMsg.setStartCoord(this.getLoc());
moveToMsg.setEndCoord(endLoc);
moveToMsg.setInBuilding(-1);
moveToMsg.setUnknown01(-1);
moveToMsg.setSourceType(GameObjectType.PlayerCharacter.ordinal());
moveToMsg.setSourceID(this.getObjectUUID());
Dispatch dispatch = Dispatch.borrow(this, moveToMsg);
DispatchMessage.dispatchMsgDispatch(dispatch, DispatchChannel.PRIMARY);
try {
MovementManager.movement(moveToMsg, this);
} catch (MsgSendException e) {
// TODO Auto-generated catch block
Logger.error("Player.MoveTo", this.getName() + " tripped error " + e.getMessage());
}
}
public void updateScaleHeight() {
float strengthScale = 0;
@ -5574,10 +5375,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5574,10 +5375,6 @@ public class PlayerCharacter extends AbstractCharacter {
this.overFlowEXP = overFlowEXP;
}
public MovementState getLastMovementState() {
return lastMovementState;
}
public void setLastMovementState(MovementState lastMovementState) {
this.lastMovementState = lastMovementState;
}
@ -5609,14 +5406,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5609,14 +5406,6 @@ public class PlayerCharacter extends AbstractCharacter {
return characterHeight;
}
public void setCharacterHeight(float characterHeight) {
this.characterHeight = characterHeight;
}
public void setCenterHeight(float centerHeight) {
this.centerHeight = centerHeight;
}
public boolean isEnteredWorld() {
return enteredWorld;
}
@ -5625,26 +5414,10 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5625,26 +5414,10 @@ public class PlayerCharacter extends AbstractCharacter {
this.enteredWorld = enteredWorld;
}
public long getChannelMute() {
return channelMute;
}
public void setChannelMute(long channelMute) {
this.channelMute = channelMute;
}
public boolean isLastSwimming() {
return lastSwimming;
}
public boolean isTeleporting() {
return isTeleporting;
}
public void setTeleporting(boolean isTeleporting) {
this.isTeleporting = isTeleporting;
}
@Override
public final void teleport(final Vector3fImmutable targetLoc) {
@ -5694,176 +5467,6 @@ public class PlayerCharacter extends AbstractCharacter { @@ -5694,176 +5467,6 @@ public class PlayerCharacter extends AbstractCharacter {
dirtyLock.writeLock().unlock();
}
public static float getRegenRate(PlayerCharacter player, ModType type){
float regenRate = player.getRegenModifier(type);
player.updateMovementState();
switch (player.movementState) {
case IDLE:
if(player.walkMode){
switch(type){
case HealthRecoverRate:
regenRate = MBServerStatics.HEALTH_REGEN_WALK * regenRate;
break;
case ManaRecoverRate:
regenRate = MBServerStatics.MANA_REGEN_WALK * regenRate;
break;
case StaminaRecoverRate:
regenRate = MBServerStatics.STAMINA_REGEN_WALK * regenRate;
break;
}
}else{
switch(type){
case HealthRecoverRate:
regenRate = MBServerStatics.HEALTH_REGEN_IDLE * regenRate;
break;
case ManaRecoverRate:
regenRate = MBServerStatics.MANA_REGEN_IDLE * regenRate;
break;
case StaminaRecoverRate:
regenRate = MBServerStatics.STAMINA_REGEN_IDLE * regenRate;
break;
}
}
break;
case RUNNING:
if(type.equals(ModType.StaminaRecoverRate)){
if(player.walkMode){
regenRate = 0f;
}else{
if(player.combat){
regenRate = MBServerStatics.STAMINA_REGEN_RUN_COMBAT * regenRate;
}else{
regenRate = MBServerStatics.STAMINA_REGEN_RUN_NONCOMBAT * regenRate;
}
}
}else{
regenRate = 0f;
}
break;
case SWIMMING:
switch(type){
case HealthRecoverRate:
regenRate = MBServerStatics.HEALTH_REGEN_IDLE_STATIC * regenRate;
break;
case ManaRecoverRate:
regenRate = MBServerStatics.MANA_REGEN_IDLE * regenRate;
break;
case StaminaRecoverRate:
regenRate = MBServerStatics.STAMINA_REGEN_SWIM;
break;
}
break;
case SITTING:
switch(type){
case HealthRecoverRate:
regenRate = MBServerStatics.HEALTH_REGEN_SIT * regenRate;
break;
case ManaRecoverRate:
regenRate = MBServerStatics.MANA_REGEN_SIT * regenRate;
break;
case StaminaRecoverRate:
regenRate = MBServerStatics.STAMINA_REGEN_SIT * regenRate;
break;
}
break;
case FLYING:
switch(type){
case HealthRecoverRate:
regenRate = MBServerStatics.HEALTH_REGEN_SIT * regenRate;
break;
case ManaRecoverRate:
regenRate = MBServerStatics.MANA_REGEN_IDLE * regenRate;
break;
case StaminaRecoverRate:
regenRate = MBServerStatics.STAMINA_REGEN_FLY_IDLE * regenRate;
break;
}
break;
}
return regenRate;
}
public void regenerate(){
if ((!this.isAlive()) || (!this.isActive()) || this.getLoc().x == 0 && this.getLoc().z == 0)
return;
float healthPerSecond = this.healthMax * 0.01f; // 1% of health
float manaPerSecond = this.manaMax * 0.01f; // 1% of health
float staminaPerSecond = this.staminaMax * 0.01f; // 1% of health
float healthRegenrated = 0f;
float manaRegenrated = 0f;
float staminaRegenrated = 0f;
long currentTime = System.currentTimeMillis();
if (this.updateLock.writeLock().tryLock()) {
try {
Long regenTime;
if(this.timestamps.containsKey("LastRegen"))
regenTime = this.timestamps.get("LastRegen");
else
regenTime = currentTime;
float secondsPassed = (currentTime - regenTime) / 1000f;
healthRegenrated = healthPerSecond * secondsPassed * getRegenRate(this, ModType.HealthRecoverRate);
manaRegenrated = manaPerSecond * secondsPassed * getRegenRate(this, ModType.ManaRecoverRate);
staminaRegenrated = staminaPerSecond * secondsPassed * getRegenRate(this, ModType.StaminaRecoverRate);
boolean workedHealth = false;
boolean workedMana = false;
boolean workedStamina = false;
float old, mod;
while (!workedHealth || !workedMana || !workedStamina) {
if (!this.isAlive() || !this.isActive())
return;
if (!workedHealth) {
old = this.health.get();
mod = old + healthRegenrated;
if (mod > this.healthMax)
mod = healthMax;
else if (mod <= 0) {
if (this.isAlive.compareAndSet(true, false))
killCharacter("Water");
return;
}
workedHealth = this.health.compareAndSet(old, mod);
}
if (!workedStamina) {
old = this.stamina.get();
mod = old + staminaRegenrated;
if (mod > this.staminaMax)
mod = staminaMax;
else if (mod < 0)
mod = 0;
workedStamina = this.stamina.compareAndSet(old, mod);
}
if (!workedMana) {
old = this.mana.get();
mod = old + manaRegenrated;
if (mod > this.manaMax)
mod = manaMax;
else if (mod < 0)
mod = 0;
workedMana = this.mana.compareAndSet(old, mod);
}
}
if (this.stamina.get() < this.staminaMax * 0.1f && this.isFlying())
this.syncClient();
} catch (Exception e) {
Logger.error(e);
} finally {
this.timestamps.put("LastRegen",currentTime);
this.updateLock.writeLock().unlock();
}
}
}
public void doRegen(){
if (this.updateLock.writeLock().tryLock()) {
try {

Loading…
Cancel
Save