2022-04-30 09:41:17 -04:00
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.db.handlers ;
2023-05-23 08:31:10 -04:00
import engine.gameManager.DbManager ;
2024-04-05 07:59:44 -04:00
import engine.mbEnums ;
2022-04-30 09:41:17 -04:00
import engine.objects.SkillReq ;
2023-05-20 19:34:02 -04:00
import engine.powers.PowersBase ;
import org.pmw.tinylog.Logger ;
2022-04-30 09:41:17 -04:00
2023-05-23 08:31:10 -04:00
import java.sql.Connection ;
import java.sql.PreparedStatement ;
2023-05-20 19:34:02 -04:00
import java.sql.ResultSet ;
2023-05-23 08:31:10 -04:00
import java.sql.SQLException ;
2022-04-30 09:41:17 -04:00
import java.util.ArrayList ;
2023-05-20 19:34:02 -04:00
import java.util.HashMap ;
2022-04-30 09:41:17 -04:00
public class dbSkillReqHandler extends dbHandlerBase {
public dbSkillReqHandler () {
this . localClass = SkillReq . class ;
2024-04-05 07:59:44 -04:00
this . localObjectType = mbEnums . GameObjectType . valueOf ( this . localClass . getSimpleName ());
2022-04-30 09:41:17 -04:00
}
2023-05-20 19:34:02 -04:00
public static ArrayList < PowersBase > getAllPowersBase () {
2023-05-23 08:31:10 -04:00
ArrayList < PowersBase > powerBaseList = new ArrayList <> ();
try ( Connection connection = DbManager . getConnection ();
PreparedStatement preparedStatement = connection . prepareStatement ( "SELECT * FROM static_power_powerbase" )) {
ResultSet rs = preparedStatement . executeQuery ();
2023-05-20 19:34:02 -04:00
while ( rs . next ()) {
PowersBase toAdd = new PowersBase ( rs );
2023-05-23 08:31:10 -04:00
powerBaseList . add ( toAdd );
2023-05-20 19:34:02 -04:00
}
2023-05-23 08:31:10 -04:00
} catch ( SQLException e ) {
Logger . error ( e );
2023-05-20 19:34:02 -04:00
}
2023-05-23 08:31:10 -04:00
return powerBaseList ;
2023-05-20 19:34:02 -04:00
}
public static void getFailConditions ( HashMap < String , PowersBase > powers ) {
2023-05-23 08:31:10 -04:00
try ( Connection connection = DbManager . getConnection ();
PreparedStatement preparedStatement = connection . prepareStatement ( "SELECT IDString, type FROM static_power_failcondition where powerOrEffect = 'Power'" )) {
ResultSet rs = preparedStatement . executeQuery ();
2023-05-20 19:34:02 -04:00
while ( rs . next ()) {
2023-05-23 08:31:10 -04:00
String type = rs . getString ( "type" );
String IDString = rs . getString ( "IDString" );
PowersBase pb = powers . get ( IDString );
if ( pb != null )
2023-05-20 19:34:02 -04:00
switch ( type ) {
case "CastSpell" :
pb . cancelOnCastSpell = true ;
break ;
case "TakeDamage" :
pb . cancelOnTakeDamage = true ;
break ;
}
}
2023-05-23 08:31:10 -04:00
} catch ( SQLException e ) {
Logger . error ( e );
2023-05-20 19:34:02 -04:00
}
}
2022-04-30 09:41:17 -04:00
public ArrayList < SkillReq > GET_REQS_FOR_RUNE ( final int objectUUID ) {
2023-05-23 08:31:10 -04:00
ArrayList < SkillReq > skillReqsList = new ArrayList <> ();
try ( Connection connection = DbManager . getConnection ();
PreparedStatement preparedStatement = connection . prepareStatement ( "SELECT * FROM `static_skill_skillreq` WHERE `runeID`=?" )) {
preparedStatement . setInt ( 1 , objectUUID );
ResultSet rs = preparedStatement . executeQuery ();
skillReqsList = getObjectsFromRs ( rs , 5 );
} catch ( SQLException e ) {
Logger . error ( e );
}
return skillReqsList ;
2022-04-30 09:41:17 -04:00
}
2023-05-20 19:34:02 -04:00
2022-04-30 09:41:17 -04:00
}