Block damage multiplier rule
This commit is contained in:
@@ -780,10 +780,10 @@ rules.wavetimer = Wave Timer
|
|||||||
rules.waves = Waves
|
rules.waves = Waves
|
||||||
rules.attack = Attack Mode
|
rules.attack = Attack Mode
|
||||||
rules.enemyCheat = Infinite AI (Red Team) Resources
|
rules.enemyCheat = Infinite AI (Red Team) Resources
|
||||||
rules.unitdrops = Unit Drops
|
rules.blockhealthmultiplier = Block Health Multiplier
|
||||||
|
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||||
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||||
rules.unithealthmultiplier = Unit Health Multiplier
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
rules.blockhealthmultiplier = Block Health Multiplier
|
|
||||||
rules.unitdamagemultiplier = Unit Damage Multiplier
|
rules.unitdamagemultiplier = Unit Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles)
|
||||||
rules.wavespacing = Wave Spacing:[lightgray] (sec)
|
rules.wavespacing = Wave Spacing:[lightgray] (sec)
|
||||||
|
|||||||
@@ -133,6 +133,9 @@ public class Vars implements Loadable{
|
|||||||
public static boolean clearSectors = false;
|
public static boolean clearSectors = false;
|
||||||
/** whether any light rendering is enabled */
|
/** whether any light rendering is enabled */
|
||||||
public static boolean enableLight = true;
|
public static boolean enableLight = true;
|
||||||
|
/** Whether to draw shadows of blocks at map edges and static blocks.
|
||||||
|
* Do not change unless you know exactly what you are doing.*/
|
||||||
|
public static boolean enableDarkness = true;
|
||||||
/** application data directory, equivalent to {@link Settings#getDataDirectory()} */
|
/** application data directory, equivalent to {@link Settings#getDataDirectory()} */
|
||||||
public static Fi dataDirectory;
|
public static Fi dataDirectory;
|
||||||
/** data subdirectory used for screenshots */
|
/** data subdirectory used for screenshots */
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
Draw.draw(Layer.light, lights::draw);
|
Draw.draw(Layer.light, lights::draw);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state.rules.drawDarkness){
|
if(enableDarkness){
|
||||||
Draw.draw(Layer.darkness, blocks::drawDarkness);
|
Draw.draw(Layer.darkness, blocks::drawDarkness);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,10 @@ public abstract class BulletType extends Content{
|
|||||||
public float weaveMag = -1f;
|
public float weaveMag = -1f;
|
||||||
public float hitShake = 0f;
|
public float hitShake = 0f;
|
||||||
|
|
||||||
|
public float lightRadius = 16f;
|
||||||
|
public float lightOpacity = 0.3f;
|
||||||
|
public Color lightColor = Pal.powerLight;
|
||||||
|
|
||||||
public BulletType(float speed, float damage){
|
public BulletType(float speed, float damage){
|
||||||
this.speed = speed;
|
this.speed = speed;
|
||||||
this.damage = damage;
|
this.damage = damage;
|
||||||
@@ -161,6 +165,10 @@ public abstract class BulletType extends Content{
|
|||||||
public void draw(Bulletc b){
|
public void draw(Bulletc b){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void drawLight(Bulletc b){
|
||||||
|
Drawf.light(b, lightRadius, lightColor, lightOpacity);
|
||||||
|
}
|
||||||
|
|
||||||
public void init(Bulletc b){
|
public void init(Bulletc b){
|
||||||
if(killShooter && b.owner() instanceof Healthc){
|
if(killShooter && b.owner() instanceof Healthc){
|
||||||
((Healthc)b.owner()).kill();
|
((Healthc)b.owner()).kill();
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ public class ContinuousLaserBulletType extends BulletType{
|
|||||||
pierce = true;
|
pierce = true;
|
||||||
hittable = false;
|
hittable = false;
|
||||||
hitColor = colors[2];
|
hitColor = colors[2];
|
||||||
|
incendAmount = 1;
|
||||||
|
incendSpread = 5;
|
||||||
|
incendChance = 0.4f;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ContinuousLaserBulletType(){
|
protected ContinuousLaserBulletType(){
|
||||||
@@ -53,15 +56,6 @@ public class ContinuousLaserBulletType extends BulletType{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
@Override
|
|
||||||
public void hit(Bulletc b, float hitx, float hity){
|
|
||||||
hitEffect.at(hitx, hity, colors[2]);
|
|
||||||
if(Mathf.chance(0.4)){
|
|
||||||
Fires.create(world.tileWorld(hitx + Mathf.range(5f), hity + Mathf.range(5f)));
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Bulletc b){
|
public void draw(Bulletc b){
|
||||||
float baseLen = length * b.fout();
|
float baseLen = length * b.fout();
|
||||||
@@ -82,4 +76,9 @@ public class ContinuousLaserBulletType extends BulletType{
|
|||||||
Draw.reset();
|
Draw.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawLight(Bulletc b){
|
||||||
|
//no light drawn here
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,4 +95,9 @@ public class LaserBulletType extends BulletType{
|
|||||||
Tmp.v1.trns(b.rotation(), baseLen * 1.1f);
|
Tmp.v1.trns(b.rotation(), baseLen * 1.1f);
|
||||||
Drawf.light(b.x(), b.y(), b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, width * 1.4f * b.fout(), colors[0], 0.6f);
|
Drawf.light(b.x(), b.y(), b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, width * 1.4f * b.fout(), colors[0], 0.6f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawLight(Bulletc b){
|
||||||
|
//no light drawn here
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import static mindustry.Vars.*;
|
|||||||
@Component
|
@Component
|
||||||
abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Drawc, Shielderc, Ownerc, Velc, Bulletc, Timerc{
|
abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Drawc, Shielderc, Ownerc, Velc, Bulletc, Timerc{
|
||||||
@Import Team team;
|
@Import Team team;
|
||||||
|
@Import Entityc owner;
|
||||||
|
|
||||||
IntSeq collided = new IntSeq(6);
|
IntSeq collided = new IntSeq(6);
|
||||||
Object data;
|
Object data;
|
||||||
@@ -49,9 +50,9 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float damageMultiplier(){
|
public float damageMultiplier(){
|
||||||
if(owner() instanceof Unitc){
|
if(owner instanceof Unitc) return ((Unitc)owner).damageMultiplier() * state.rules.unitDamageMultiplier;
|
||||||
return ((Unitc)owner()).damageMultiplier();
|
if(owner instanceof Tilec) return state.rules.blockDamageMultiplier;
|
||||||
}
|
|
||||||
return 1f;
|
return 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,8 +134,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
|
|||||||
Draw.z(Layer.bullet);
|
Draw.z(Layer.bullet);
|
||||||
|
|
||||||
type.draw(this);
|
type.draw(this);
|
||||||
//TODO refactor
|
type.drawLight(this);
|
||||||
Drawf.light(x(), y(), 16f, Pal.powerLight, 0.3f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sets the bullet's rotation in degrees. */
|
/** Sets the bullet's rotation in degrees. */
|
||||||
|
|||||||
@@ -32,10 +32,12 @@ public class Rules{
|
|||||||
public float unitBuildSpeedMultiplier = 1f;
|
public float unitBuildSpeedMultiplier = 1f;
|
||||||
/** How much health units start with. */
|
/** How much health units start with. */
|
||||||
public float unitHealthMultiplier = 1f;
|
public float unitHealthMultiplier = 1f;
|
||||||
/** How much health blocks start with. */
|
|
||||||
public float blockHealthMultiplier = 1f;
|
|
||||||
/** How much damage any other units deal. */
|
/** How much damage any other units deal. */
|
||||||
public float unitDamageMultiplier = 1f;
|
public float unitDamageMultiplier = 1f;
|
||||||
|
/** How much health blocks start with. */
|
||||||
|
public float blockHealthMultiplier = 1f;
|
||||||
|
/** How much damage blocks (turrets) deal. */
|
||||||
|
public float blockDamageMultiplier = 1f;
|
||||||
/** Multiplier for buildings resource cost. */
|
/** Multiplier for buildings resource cost. */
|
||||||
public float buildCostMultiplier = 1f;
|
public float buildCostMultiplier = 1f;
|
||||||
/** Multiplier for building speed. */
|
/** Multiplier for building speed. */
|
||||||
@@ -68,9 +70,6 @@ public class Rules{
|
|||||||
public boolean tutorial = false;
|
public boolean tutorial = false;
|
||||||
/** Whether a gameover can happen at all. Set this to false to implement custom gameover conditions. */
|
/** Whether a gameover can happen at all. Set this to false to implement custom gameover conditions. */
|
||||||
public boolean canGameOver = true;
|
public boolean canGameOver = true;
|
||||||
/** Whether to draw shadows of blocks at map edges and static blocks.
|
|
||||||
* Do not change unless you know exactly what you are doing.*/
|
|
||||||
public boolean drawDarkness = true;
|
|
||||||
/** EXPERIMENTAL building AI. TODO remove */
|
/** EXPERIMENTAL building AI. TODO remove */
|
||||||
public boolean buildAI = true;
|
public boolean buildAI = true;
|
||||||
/** Starting items put in cores */
|
/** Starting items put in cores */
|
||||||
@@ -93,7 +92,7 @@ public class Rules{
|
|||||||
/** special tags for additional info */
|
/** special tags for additional info */
|
||||||
public StringMap tags = new StringMap();
|
public StringMap tags = new StringMap();
|
||||||
|
|
||||||
/** Copies this ruleset exactly. Not very efficient at all, do not use often. */
|
/** Copies this ruleset exactly. Not efficient at all, do not use often. */
|
||||||
public Rules copy(){
|
public Rules copy(){
|
||||||
return JsonIO.copy(this);
|
return JsonIO.copy(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,9 +43,8 @@ public class Pixelator implements Disposable{
|
|||||||
Draw.draw(Layer.end, () -> {
|
Draw.draw(Layer.end, () -> {
|
||||||
buffer.end();
|
buffer.end();
|
||||||
|
|
||||||
Draw.blend(Blending.disabled);
|
Blending.disabled.apply();
|
||||||
Draw.rect(buffer);
|
buffer.blit(Shaders.screenspace);
|
||||||
Draw.blend();
|
|
||||||
|
|
||||||
Core.camera.position.set(px, py);
|
Core.camera.position.set(px, py);
|
||||||
renderer.setScale(pre);
|
renderer.setScale(pre);
|
||||||
|
|||||||
@@ -669,7 +669,7 @@ public class Mods implements Loadable{
|
|||||||
return new LoadedMod(sourceFile, zip, mainMod, meta);
|
return new LoadedMod(sourceFile, zip, mainMod, meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Represents a plugin that has been loaded from a jar file.*/
|
/** Represents a mod's state. May be a jar file, folder or zip. */
|
||||||
public static class LoadedMod implements Publishable, Disposable{
|
public static class LoadedMod implements Publishable, Disposable{
|
||||||
/** The location of this mod's zip file/folder on the disk. */
|
/** The location of this mod's zip file/folder on the disk. */
|
||||||
public final Fi file;
|
public final Fi file;
|
||||||
@@ -803,7 +803,7 @@ public class Mods implements Loadable{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Plugin metadata information.*/
|
/** Mod metadata information.*/
|
||||||
public static class ModMeta{
|
public static class ModMeta{
|
||||||
public String name, displayName, author, description, version, main, minGameVersion;
|
public String name, displayName, author, description, version, main, minGameVersion;
|
||||||
public Seq<String> dependencies = Seq.with();
|
public Seq<String> dependencies = Seq.with();
|
||||||
|
|||||||
@@ -293,8 +293,7 @@ public class Administration{
|
|||||||
public boolean adminPlayer(String id, String usid){
|
public boolean adminPlayer(String id, String usid){
|
||||||
PlayerInfo info = getCreateInfo(id);
|
PlayerInfo info = getCreateInfo(id);
|
||||||
|
|
||||||
if(info.admin && info.adminUsid != null && info.adminUsid.equals(usid))
|
if(info.admin && info.adminUsid != null && info.adminUsid.equals(usid)) return false;
|
||||||
return false;
|
|
||||||
|
|
||||||
info.adminUsid = usid;
|
info.adminUsid = usid;
|
||||||
info.admin = true;
|
info.admin = true;
|
||||||
@@ -310,8 +309,7 @@ public class Administration{
|
|||||||
public boolean unAdminPlayer(String id){
|
public boolean unAdminPlayer(String id){
|
||||||
PlayerInfo info = getCreateInfo(id);
|
PlayerInfo info = getCreateInfo(id);
|
||||||
|
|
||||||
if(!info.admin)
|
if(!info.admin) return false;
|
||||||
return false;
|
|
||||||
|
|
||||||
info.admin = false;
|
info.admin = false;
|
||||||
save();
|
save();
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
|
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
|
||||||
number("$rules.deconstructrefundmultiplier", false, f -> rules.deconstructRefundMultiplier = f, () -> rules.deconstructRefundMultiplier, () -> !rules.infiniteResources);
|
number("$rules.deconstructrefundmultiplier", false, f -> rules.deconstructRefundMultiplier = f, () -> rules.deconstructRefundMultiplier, () -> !rules.infiniteResources);
|
||||||
number("$rules.blockhealthmultiplier", f -> rules.blockHealthMultiplier = f, () -> rules.blockHealthMultiplier);
|
number("$rules.blockhealthmultiplier", f -> rules.blockHealthMultiplier = f, () -> rules.blockHealthMultiplier);
|
||||||
|
number("$rules.blockdamagemultiplier", f -> rules.blockDamageMultiplier = f, () -> rules.blockDamageMultiplier);
|
||||||
|
|
||||||
main.button("$configure",
|
main.button("$configure",
|
||||||
() -> loadoutDialog.show(Blocks.coreShard.itemCapacity, rules.loadout,
|
() -> loadoutDialog.show(Blocks.coreShard.itemCapacity, rules.loadout,
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
org.gradle.daemon=true
|
org.gradle.daemon=true
|
||||||
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
||||||
archash=9fadfb97c7270920c22ac75ee4815663df7efc3d
|
archash=a074a6f49cf19f417b40fede82a429dab8c91cc0
|
||||||
|
|||||||
Reference in New Issue
Block a user