etc. Added EN gained overlay.dev
parent
4868ccdb0f
commit
0ad5cb7972
Binary file not shown.
@ -0,0 +1,159 @@ |
|||||||
|
package sig.modules.RabiRibi; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.lang.reflect.Field; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import sig.sigIRC; |
||||||
|
import sig.modules.RabiRibiModule; |
||||||
|
import sig.utils.FileUtils; |
||||||
|
|
||||||
|
public class EntityLookupData { |
||||||
|
final static String RABIRIBI_DIR = sigIRC.BASEDIR+"sigIRC/rabi-ribi/"; |
||||||
|
final static String LOOKUP_DATA_FILE = RABIRIBI_DIR+"lookupdata.txt"; |
||||||
|
int en=-1; |
||||||
|
int kills=0; |
||||||
|
public static RabiRibiModule parent; |
||||||
|
|
||||||
|
public EntityLookupData(){ |
||||||
|
}; |
||||||
|
|
||||||
|
public EntityLookupData(int en){ |
||||||
|
this(); |
||||||
|
this.en=en; |
||||||
|
}; |
||||||
|
|
||||||
|
public EntityLookupData(String[] parse_string){ |
||||||
|
this(); |
||||||
|
int i=1; |
||||||
|
if (parse_string.length>=i++) { |
||||||
|
this.en = Integer.parseInt(parse_string[0]); |
||||||
|
} |
||||||
|
if (parse_string.length>=i++) { |
||||||
|
this.kills = Integer.parseInt(parse_string[1]); |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
public static int getMoney(int id, int color) { |
||||||
|
String hashcode = EntityLookupData.getHashCode(id, color); |
||||||
|
System.out.println("Hashcode is "+hashcode); |
||||||
|
if (parent.lookup_table.containsKey(hashcode)) { |
||||||
|
return parent.lookup_table.get(hashcode).getMoney(); |
||||||
|
} else { |
||||||
|
return -1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int getMoney() { |
||||||
|
return en; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMoney(int money) { |
||||||
|
en = money; |
||||||
|
} |
||||||
|
|
||||||
|
public int getKills() { |
||||||
|
return kills; |
||||||
|
} |
||||||
|
|
||||||
|
public void increaseKills(int amt) { |
||||||
|
kills += amt; |
||||||
|
} |
||||||
|
|
||||||
|
public String getSaveString() { |
||||||
|
StringBuilder sb = new StringBuilder(); |
||||||
|
sb.append(en); |
||||||
|
sb.append(","); |
||||||
|
sb.append(kills); |
||||||
|
sb.append(","); |
||||||
|
return sb.toString(); |
||||||
|
} |
||||||
|
|
||||||
|
public static EntityLookupData getEntityLookupData(int id, int color) { |
||||||
|
String hashcode = EntityLookupData.getHashCode(id, color); |
||||||
|
if (parent.lookup_table.containsKey(hashcode)) { |
||||||
|
return parent.lookup_table.get(hashcode); |
||||||
|
} else { |
||||||
|
EntityLookupData data = new EntityLookupData(0); |
||||||
|
parent.lookup_table.put(getHashCode(id,color), data); |
||||||
|
return data; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static String getHashCode(int id, int color) { |
||||||
|
StringBuilder sb = new StringBuilder(); |
||||||
|
sb.append(id); |
||||||
|
sb.append("_"); |
||||||
|
sb.append(color); |
||||||
|
sb.append("_"); |
||||||
|
sb.append(parent.readIntFromMemory(MemoryOffset.GAME_DIFFICULTY)); |
||||||
|
sb.append("_"); |
||||||
|
sb.append(parent.readIntFromMemory(MemoryOffset.GAME_LOOP)); |
||||||
|
return sb.toString(); |
||||||
|
} |
||||||
|
|
||||||
|
public static void saveEntityLookupData(HashMap<String,EntityLookupData> vals) { |
||||||
|
File dir = new File(RABIRIBI_DIR); |
||||||
|
if (!dir.exists()) { |
||||||
|
dir.mkdirs(); |
||||||
|
} |
||||||
|
List<String> data = new ArrayList<String>(); |
||||||
|
for (String s : vals.keySet()) { |
||||||
|
EntityLookupData lookup_data = vals.get(s); |
||||||
|
data.add(s+":"+lookup_data.getSaveString()); |
||||||
|
} |
||||||
|
FileUtils.writetoFile(data.toArray(new String[data.size()]), LOOKUP_DATA_FILE); |
||||||
|
} |
||||||
|
|
||||||
|
public static void loadEntityLookupData(HashMap<String,EntityLookupData> map) { |
||||||
|
File file = new File(LOOKUP_DATA_FILE); |
||||||
|
map.clear(); |
||||||
|
if (file.exists()) { |
||||||
|
String[] data = FileUtils.readFromFile(LOOKUP_DATA_FILE); |
||||||
|
for (String s : data) { |
||||||
|
String[] key_split = s.split(":"); |
||||||
|
String[] split = key_split[1].split(","); |
||||||
|
|
||||||
|
EntityLookupData lookup_data = new EntityLookupData( |
||||||
|
split |
||||||
|
); |
||||||
|
|
||||||
|
map.put(key_split[0], |
||||||
|
lookup_data |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public String toString() { |
||||||
|
StringBuilder sb = new StringBuilder(); |
||||||
|
sb.append(this.getClass().getName()+"("); |
||||||
|
boolean first=false; |
||||||
|
for (Field f : this.getClass().getDeclaredFields()) { |
||||||
|
//if (!ReflectUtils.isCloneable(f)) {
|
||||||
|
if (!first) { |
||||||
|
try { |
||||||
|
sb.append(f.getName()+"="+f.get(this)); |
||||||
|
first=true; |
||||||
|
} catch (IllegalArgumentException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} catch (IllegalAccessException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} else { |
||||||
|
try { |
||||||
|
sb.append(","+f.getName()+"="+f.get(this)); |
||||||
|
} catch (IllegalArgumentException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} catch (IllegalAccessException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
} |
||||||
|
//}
|
||||||
|
} |
||||||
|
sb.append(")"); |
||||||
|
return sb.toString(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
package sig.modules.RabiRibi; |
||||||
|
|
||||||
|
import sig.modules.RabiRibiModule; |
||||||
|
|
||||||
|
public class RabiUtils { |
||||||
|
public static RabiRibiModule module; |
||||||
|
|
||||||
|
public static boolean isGamePaused() { |
||||||
|
return module.readIntFromMemory(MemoryOffset.TRANSITION_COUNTER)>=300; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue