@ -405,6 +405,8 @@ public class Mob extends AbstractIntelligenceAgent {
@@ -405,6 +405,8 @@ public class Mob extends AbstractIntelligenceAgent {
Mob mobile = new Mob ( ) ;
mobile . dbID = MBServerStatics . NO_DB_ROW_ASSIGNED_YET ;
mobile . agentType = AIAgentType . MOBILE ;
mobile . behaviourType = MobBehaviourType . None ;
mobile . loadID = loadID ;
mobile . level = ( short ) level ;
@ -428,18 +430,7 @@ public class Mob extends AbstractIntelligenceAgent {
@@ -428,18 +430,7 @@ public class Mob extends AbstractIntelligenceAgent {
else
mobile . contractUUID = contract . getContractID ( ) ;
Mob mob ;
mobile . agentType = AIAgentType . GUARD ;
try {
mob = DbManager . MobQueries . PERSIST ( mobile ) ;
} catch ( Exception e ) {
Logger . error ( "SQLException:" + e . getMessage ( ) ) ;
mob = null ;
}
return mob ;
return mobile ;
}
public static synchronized Mob createGuardMinion ( Mob guardCaptain , short level , String minionName ) {
@ -463,7 +454,6 @@ public class Mob extends AbstractIntelligenceAgent {
@@ -463,7 +454,6 @@ public class Mob extends AbstractIntelligenceAgent {
minionMobile . guardCaptain = guardCaptain ;
minionMobile . spawnTime = ( int ) ( - 2 . 500 * guardCaptain . building . getRank ( ) + 22 . 5 ) * 60 ;
minionMobile . behaviourType = Enum . MobBehaviourType . GuardMinion ;
minionMobile . agentType = AIAgentType . GUARD ;
minionMobile . isPlayerGuard = true ;
minionMobile . guardedCity = guardCaptain . guardedCity ;
minionMobile . patrolPoints = guardCaptain . building . patrolPoints ;
@ -1545,33 +1535,30 @@ public class Mob extends AbstractIntelligenceAgent {
@@ -1545,33 +1535,30 @@ public class Mob extends AbstractIntelligenceAgent {
else
this . contract = DbManager . ContractQueries . GET_CONTRACT ( this . contractUUID ) ;
// Setup mobile AI and equipset for contract
if ( this . contract ! = null ) {
// Setup equipset for contract
this . equipmentSetID = this . contract . getEquipmentSet ( ) ;
// Load AI for guard captain s
// Configure AI related value s
if ( NPC . ISGuardCaptain ( contract . getContractID ( ) ) | | this . contract . getContractID ( ) = = 910 ) { // Guard Dog
this . behaviourType = MobBehaviourType . GuardCaptain ;
this . spawnTime = 60 * 15 ;
this . isPlayerGuard = true ;
switch ( this . behaviourType ) {
case GuardCaptain :
this . agentType = AIAgentType . GUARDCAPTAIN ;
this . spawnTime = 600 ;
this . guardedCity = ZoneManager . getCityAtLocation ( this . building . getLoc ( ) ) ;
}
// Load AI for wall archers
if ( NPC . ISWallArcher ( this . contract ) ) {
break ;
case GuardWallArcher :
this . gridObjectType = GridObjectType . DYNAMIC ;
this . behaviourType = MobBehaviourType . GuardWallArcher ;
this . isPlayerGuard = true ;
this . agentType = AIAgentType . GUARDWALLARCHER ;
this . spawnTime = 450 ;
this . guardedCity = ZoneManager . getCityAtLocation ( this . building . getLoc ( ) ) ;
}
}
// Default to the mobbase for AI if nothing is hte mob field to override.
// Default to the mobbase for AI if nothing is in mob field to override.
if ( this . behaviourType = = null | | this . behaviourType . equals ( MobBehaviourType . None ) )
this . behaviourType = this . getMobBase ( ) . fsm ;
@ -1604,7 +1591,7 @@ public class Mob extends AbstractIntelligenceAgent {
@@ -1604,7 +1591,7 @@ public class Mob extends AbstractIntelligenceAgent {
// Don't override level for guard minions or pets
if ( this . contract = = null )
if ( ! this . agentType . equals ( AIAgentType . GUARD ) & & ! this . agentType . equals ( AIAgentType . PET ) )
if ( ! this . agentType . equals ( AIAgentType . GUARDCAPTAIN ) & & ! this . agentType . equals ( AIAgentType . PET ) )
this . level = ( short ) this . mobBase . getLevel ( ) ;
//set bonuses