Merge branch 'lakebane-mines' into lakebane-custom-races

This commit is contained in:
2024-03-17 16:59:21 -05:00
11 changed files with 117 additions and 79 deletions
+26 -22
View File
@@ -1254,33 +1254,37 @@ public class CharacterItemManager {
}
return false;
}
}
if(ItemBase.getItemBase(i.getItemBaseID()).getType().ordinal() == Enum.ItemType.RESOURCE.ordinal()) {
int count = i.getNumOfItems();
ArrayList<Item> purge = new ArrayList<>();
for(Item item : this.inventory){
if(item.getItemBaseID() == i.getItemBaseID()){
if(item.getNumOfItems() + count <= Warehouse.getMaxResources().get(i.getItemBaseID())){
purge.add(item);
}
}
}
for(Item item : purge){
count += item.getNumOfItems();
this.removeItemFromInventory(item);
item.junk();
}
Item resource = new MobLoot(this.getOwner(),i.getItemBase(),count,false).promoteToItem((PlayerCharacter)this.getOwner());
this.inventory.add(resource);
this.itemIDtoType.put(resource.getObjectUUID(), resource.getObjectType().ordinal());
this.updateInventory(purge,false);
return true;
}
} //else if (i.getItemBase().getType().equals(ItemType.RESOURCE)) {
// if(this.inventoryContainsResource(i)){
// Item resource = getResource(i);
// if(resource != null){
// resource.setNumOfItems(resource.getNumOfItems() + i.getNumOfItems());
// return true;
// }
//}
// }
this.inventory.add(i);
this.itemIDtoType.put(i.getObjectUUID(), i.getObjectType().ordinal());
return true;
}
private boolean inventoryContainsResource(Item resource) {
for(Item i : this.inventory){
if(i.getItemBaseID() == resource.getItemBaseID())
return true;
}
return false;
}
private Item getResource(Item resource) {
for(Item i : this.inventory){
if(i.getItemBaseID() == resource.getItemBaseID())
return i;
}
return null;
}
//called for adding gold of a specified amount
public synchronized boolean addItemToInventory(Item i, int amount) {
if (i.getItemBase().getType().equals(ItemType.GOLD))
+8
View File
@@ -1736,6 +1736,14 @@ public class Mob extends AbstractIntelligenceAgent {
if(this.behaviourType.equals(MobBehaviourType.HamletGuard) && this.getMobBaseID() == 14104) {//guards
this.behaviourType = MobBehaviourType.Aggro;
}
for(MobEquipment equipped: this.equip.values()){
if(equipped.getItemBase().isVorg() && this.getMobBaseID() != 14062){
this.healthMax = 7500;
this.setHealth(this.healthMax);
this.level = 65;
}
}
}
@Override
+3 -12
View File
@@ -3325,7 +3325,9 @@ public class PlayerCharacter extends AbstractCharacter {
if (this.equals(tar))
return true;
if(this.getSeeInvis() >= 20){
return !tar.safemodeInvis();
}
return this.getSeeInvis() >= tar.hidden && !tar.safemodeInvis();
}
@@ -4802,17 +4804,6 @@ public class PlayerCharacter extends AbstractCharacter {
//}
if(this.isEnteredWorld() && this.isActive() && this.getLevel() < 10){
this.setLevel((short) 10);
boolean hasConc = false;
for(Item i : this.getCharItemManager().getInventory()){
if(i.getItemBaseID() == 980066){
hasConc = true;
}
}
if(hasConc == false) {
MobLoot conc = new MobLoot(this, ItemBase.getItemBase(980066), false);
this.getCharItemManager().addItemToInventory(conc.promoteToItem(this), 1);
this.getCharItemManager().updateInventory();
}
}
} catch (Exception e) {
+2 -2
View File
@@ -393,8 +393,6 @@ public class Resists {
* Expects heals as negative damage and damage as positive damage for fortitudes.
*/
public float getResistedDamage(AbstractCharacter source, AbstractCharacter target, DamageType type, float damage, int trains) {
//handle fortitudes
damage = handleFortitude(target, type, damage);
//calculate armor piercing
float ap = source.getBonuses().getFloatPercentAll(ModType.ArmorPiercing, SourceType.None);
float damageAfterResists = damage * (1 - (this.getResist(type, trains) * 0.01f) + ap);
@@ -417,6 +415,8 @@ public class Resists {
}
target.cancelOnTakeDamage(type, (damageAfterResists));
}
//handle fortitudes last
damageAfterResists = handleFortitude(target, type, damageAfterResists);
return damageAfterResists;
}