Skip to content

Commit 7351bfc

Browse files
authored
Merge pull request #33 from JiroCab/experimental
Mew
2 parents b220bdd + 4edc79f commit 7351bfc

14 files changed

+126
-63
lines changed
362 Bytes
Loading
Loading
815 Bytes
Loading

changelog.txt

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
== Olupis Major change log ==
22
https://github.com/JiroCab/Olupis
3-
Last updated on 01/09/2025 (+8utc) by Jirocab/RushieWashie
3+
Last updated on 02/13/2025 (+8utc) by Jirocab/RushieWashie
44

5-
= Version 1-7-7 () =
5+
= Version 1-7-8 ()
6+
+ Added: little ui icons for aero & strikers weapons
7+
- Balance: reworked nyctalus, faster set up, better range, weaker AtA missile, stronger landed weapon & switched weapon sprite to reduce confusion pteropus for now
8+
- Balance: nerfed hp of all walls above rustyIron, as they scale too high per tier
9+
- Balance: repair pin now can accept coolant, coolant allows it to fire faster
10+
- BugFix: Construct Cheat menu Multiplayer fix
11+
- BugFix: luridiblatta's database entry no longer shows the area damage as a frag bullet
12+
13+
= Version 1-7-7 (b220bdd) = https://github.com/JiroCab/Nyfalis/tree/b220bdd03ab98c51a848861912cd2c067b3067df
614
+ Change: all constructs now have a unit/item selector if its team is cheating or build cost = 0
715
+ Added: lubricant-pool
816
~ Balance: Buffed starta, bullets fire the mine's weapon if it lands on a placed mine or no build radius

mod.hjson

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ main: "olupis.NyfalisMain"
1414
#the mod description as seen in the mod dialog
1515
description: "(\u26A0Work in progress\u26A0)\n Yet another planet mod \nThat does it's best to give the player(s) a bit of something new,\n with a minor hint of what the base game has to offer, focus on RTS controls, and pain on top"
1616

17-
subtitle: "Yet another planet mod, v1.7.7"
17+
subtitle: "Yet another planet mod, v1.7.8"
1818

1919
#the mod version
20-
version: 1.7.7
20+
version: 1.7.8
2121

2222
#the minimum game build required to run this mod
2323
minGameVersion: 136

src/olupis/content/NyfalisBlocks.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -1611,6 +1611,7 @@ iron, new SpawnHelperBulletType(){{
16111611
powerUse =100f / 60f;
16121612

16131613
length = 100f;
1614+
acceptCoolant = true;
16141615
outlineColor = NyfalisColors.contentOutline;
16151616
lineFx = NyfalisFxs.repairPinBeam;
16161617
fireFx = NyfalisFxs.repairPinShoot;
@@ -1921,15 +1922,15 @@ public void drawPlace(int x, int y, int rotation, boolean valid){
19211922

19221923
ironWall = new Wall("iron-wall"){{
19231924
size = 1;
1924-
health = 700;
1925+
health = 600;
19251926
buildCostMultiplier = 0.7f;
19261927
researchCost = with(iron, 500);
19271928
requirements(Category.defense,with(iron, 6));
19281929
}};
19291930

19301931
ironWallLarge = new Wall("iron-wall-large"){{
19311932
size = 2;
1932-
health = 2800;
1933+
health = 600 * 4;
19331934
buildCostMultiplier = 0.7f;
19341935
researchCost = with(iron, 1000);
19351936
requirements(Category.defense,with(iron, 24));
@@ -1938,7 +1939,7 @@ public void drawPlace(int x, int y, int rotation, boolean valid){
19381939
quartzWall = new Wall("quartz-wall"){{
19391940
absorbLasers = true;
19401941
size = 1;
1941-
health = 1100;
1942+
health = 850;
19421943
buildCostMultiplier = 0.7f;
19431944
researchCost = with(quartz, 500, lead, 200);
19441945
requirements(Category.defense,with(quartz, 6, lead, 2));
@@ -1947,7 +1948,7 @@ public void drawPlace(int x, int y, int rotation, boolean valid){
19471948
quartzWallLarge = new Wall("quartz-wall-large"){{
19481949
absorbLasers = true;
19491950
size = 2;
1950-
health = 4600;
1951+
health = 850 * 4;
19511952
buildCostMultiplier = 0.7f;
19521953
researchCost = with(quartz, 1000, lead, 200);
19531954
requirements(Category.defense,with(quartz, 24, lead, 8));
@@ -1957,7 +1958,7 @@ public void drawPlace(int x, int y, int rotation, boolean valid){
19571958
cobaltWall = new PoweredLightingWall("cobalt-wall"){{
19581959
conductivePower = consumesPower = update = true;
19591960
size = 1;
1960-
health = 1500;
1961+
health = 1200;
19611962
buildCostMultiplier = 0.7f;
19621963
lightningChancePowered = 0.06f;
19631964
consumePower(5f / 60f);
@@ -1969,7 +1970,7 @@ public void drawPlace(int x, int y, int rotation, boolean valid){
19691970
cobaltWallLarge = new PoweredLightingWall("cobalt-wall-large"){{
19701971
conductivePower = consumesPower = update = true;
19711972
size = 2;
1972-
health = 5700;
1973+
health = 1200 * 4;
19731974
buildCostMultiplier = 0.7f;
19741975
lightningChancePowered = 0.06f;
19751976
consumePower(20f / 60f);

src/olupis/content/NyfalisFxs.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -89,25 +89,24 @@ public class NyfalisFxs extends Fx {
8989
}).layer(Layer.bullet),
9090

9191
//TODO Wip scale is off
92-
highYieldExplosive = new Effect(45, 120f, e -> {
92+
highYieldExplosive = new Effect(55, 120f, e -> {
9393

9494
color(Pal.darkestGray, Pal.lightOrange, e.fout());
9595
e.scaled(6, i -> {
9696
stroke(3f * i.fout());
9797
Lines.circle(e.x, e.y, 3f + i.fin() * 15f);
9898
});
9999

100-
color(Pal.darkestGray, Pal.lightOrange, Mathf.clamp(e.fout() * 1.4f));
101-
alpha(Mathf.clamp(e.fout() * 2f));
102-
randLenVectors(e.id, 5, 2f + 3f * e.finpow(), (x, y) -> {
100+
color(Pal.lightOrange, Color.white, e.fout());
101+
randLenVectors(e.id, 4, 4f + 6f * e.finpow(), (x, y) -> {
103102
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.5f);
104103
});
105104
alpha(1);
106105

107106
color(Pal.lightOrange);
108107
stroke(e.fout());
109108

110-
randLenVectors(e.id + 1, 4, 1f + 23f * e.finpow(), (x, y) -> {
109+
randLenVectors(e.id + 1, 4, 3f + 30f * e.finpow(), (x, y) -> {
111110
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f);
112111
});
113112

src/olupis/content/NyfalisUnits.java

+26-22
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ public static void LoadUnits() {
109109

110110
aiController = WaveAiHandler::new;
111111
defaultCommand = NyfalisUnitCommands.circleCommand;
112-
weapons.add(new Weapon(""){{
112+
weapons.add(new NyfalisWeapon(""){{
113+
weaponIconString = "olupis-aero-ui-wep";
113114
top = mirror = false;
114115
continuous = alwaysContinuous = parentizeEffects = true;
115116
shake = 0f;
@@ -169,7 +170,8 @@ public static void LoadUnits() {
169170
aiController = WaveAiHandler::new;
170171
defaultCommand = NyfalisUnitCommands.circleCommand;
171172
flying = canCircleTarget = alwaysCreateOutline = true;
172-
weapons.add(new Weapon(""){{
173+
weapons.add(new NyfalisWeapon(""){{
174+
weaponIconString = "olupis-striker-ui-main";
173175
x = 0;
174176
y = 1.5f;
175177
inaccuracy = 3f;
@@ -202,7 +204,8 @@ public static void LoadUnits() {
202204
}};
203205
}};
204206
}});
205-
weapons.add(new Weapon(){{
207+
weapons.add(new NyfalisWeapon(){{
208+
weaponIconString = "olupis-striker-ui-discharge";
206209
x = 0f;
207210
reload = 30;
208211
minShootVelocity = 5f;
@@ -546,7 +549,7 @@ public static void LoadUnits() {
546549
engineOffset = 8f;
547550
rotateSpeed = 30f;
548551
itemCapacity = 20;
549-
fallSpeed = riseSpeed = 0.013f;//very slow setup
552+
fallSpeed = riseSpeed = 0.02f;//very slow setup
550553

551554
constructor = UnitEntity::create;
552555
aiController = DeployedAi::new;
@@ -559,7 +562,7 @@ public static void LoadUnits() {
559562
mirror = alternate= true;
560563
y = -3f;
561564
x = 0f;
562-
reload = 20f;
565+
reload = 30f;
563566
inaccuracy = 0f;
564567
baseRotation = 135f;
565568
shootCone = 360f;
@@ -569,11 +572,11 @@ public static void LoadUnits() {
569572
weaponIconUseFullString = true;
570573
weaponIconString = "olupis-pteropus-ui-front";
571574

572-
bullet = new BasicBulletType(6.5f, 7, "missile"){{
575+
bullet = new BasicBulletType(6.5f, 10, "missile"){{
573576
width = 8f;
574577
height = 19f;
575578
lifetime = 30f;
576-
homingPower = 0.25f;
579+
homingPower = 0.30f;
577580
maxRange = 10f;
578581
collidesGround = false;
579582
shootEffect = Fx.none;
@@ -583,7 +586,7 @@ public static void LoadUnits() {
583586
backColor = NyfalisColors.rustyBulletBack;
584587

585588
trailColor = NyfalisColors.rustyBullet;
586-
trailWidth = 1.5f;
589+
trailWidth = 1.2f;
587590
trailLength = 3;
588591
}};
589592
}},
@@ -599,42 +602,43 @@ public static void LoadUnits() {
599602
groundedEvaluation = 0;
600603
boostedEvaluation = 1;
601604

602-
weaponIconString = "olupis-pteropus-turret-ui";
605+
weaponIconString = "olupis-serpent-tail";
603606

604607
shootSound = Sounds.artillery;
605608
parts.addAll(
606-
new RegionPart("olupis-pteropus-weapon"){{
607-
mirror = true;
608-
x = -1.75f;
609+
new RegionPart("olupis-serpent-tail"){{
610+
mirror = false;
611+
rotation = 180;
609612
y = 1.95f;
610-
moveX = 1f;
611613
moveY = -0.5f;
614+
xScl = yScl = 1.5f;
612615
progress = NyfPartParms.NyfPartProgress.elevationP.inv();
613616
mixColor = new Color(1f, 1f, 1f, 0f);
614617
mixColorTo = new Color(0f, 0f, 0f, 0.25f); //pops it out from rest of the sprite while landed bc there no outline
615618
}},
616619
new CellPart("olupis-pteropus-weapon-cell"){{
617620
mirror = true;
618-
x = -1.75f;
621+
rotation = 45f;
622+
x = -2.75f;
619623
y = 1.95f;
620624
moveX = 1f;
621625
moveY = -0.5f;
622626
progress = NyfPartParms.NyfPartProgress.elevationP.inv();
623627
}}
624628
);
625629

626-
bullet = new BasicBulletType(4f, 30, "shell"){{
627-
spin = 30f;
628-
width = 10f;
629-
height = 10f;
630-
lifetime = 40f;
631-
shrinkX = 25f /60;
632-
shrinkY = 35f /60;
633-
splashDamage = 40f;
630+
bullet = new BasicBulletType(2.5f, 37, "large-bomb"){{
631+
spin = 10f;
632+
lifetime = 80f;
633+
shrinkX = 20f /60;
634+
shrinkY = 30f /60;
635+
width = height = 17f;
636+
splashDamage = 50f;
634637
splashDamageRadius = 30f;
635638
frontColor = NyfalisColors.ironBullet;
636639
backColor = NyfalisColors.ironBulletBack;
637640
hitEffect = despawnEffect = NyfalisFxs.highYieldExplosive;
641+
shrinkInterp = Interp.slope;
638642
collidesAir = false;
639643
}};
640644
}}

src/olupis/input/NyfalisPackets.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,13 @@
88
import static mindustry.Vars.netServer;
99

1010
public class NyfalisPackets {
11-
public static NyfalisUnitTimedOutPacket unitTimedOut = new NyfalisUnitTimedOutPacket();
12-
public static NyfalisDebugPackets debugPackets = new NyfalisDebugPackets();
13-
public static NyfalisSyncOtherSettingsPacket settingPacket = new NyfalisSyncOtherSettingsPacket();
14-
1511
public static void LoadPackets(){
1612

1713
Net.registerPacket(NyfalisUnitTimedOutPacket::new);
1814

1915
Net.registerPacket(NyfalisSyncOtherSettingsPacket::new);
2016
Net.registerPacket(NyfalisDebugPackets::new);
17+
Net.registerPacket(ConstructorCheatConfigPacket::new);
2118

2219
/*Too lazy to make a new class lmao*/
2320
netServer.addPacketHandler("olupis-getsettings", (p, s) ->{

src/olupis/world/blocks/defence/ItemUnitTurret.java

+28-16
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import olupis.content.*;
3737
import olupis.world.blocks.defence.Articulator.*;
3838
import olupis.world.entities.bullets.*;
39+
import olupis.world.entities.packets.*;
3940
import olupis.world.entities.units.*;
4041

4142
import java.util.*;
@@ -743,23 +744,34 @@ public void cheatIcons(Table table){
743744

744745
table.row();
745746

746-
table.table(t -> {
747-
ItemSelection.buildTable(
748-
ItemUnitTurret.this, t,
749-
ammoTypes.keys().toSeq(),
750-
() -> cheatConfig,
751-
c ->{
752-
configure(c);
753-
ammo.clear();
754-
755-
totalAmmo = 0;
756-
this.handleItem(this, cheatConfig);
757-
this.reloadCounter = 0;
758-
},
759-
selectionRows, selectionColumns
760-
);
761-
}).fillX();
747+
table.table(t -> ItemSelection.buildTable(
748+
ItemUnitTurret.this, t,
749+
ammoTypes.keys().toSeq(),
750+
() -> cheatConfig,
751+
this::requestCheat,
752+
selectionRows, selectionColumns
753+
)).fillX();
762754
}
755+
756+
}
757+
758+
public void requestCheat(Item c){
759+
handleCheat(c);
760+
761+
var p = new ConstructorCheatConfigPacket();
762+
p.build = this;
763+
p.conf = c;
764+
Vars.net.send(p, true);
765+
}
766+
767+
public void handleCheat(Item c){
768+
this.cheatConfig = c;
769+
configure(c);
770+
ammo.clear();
771+
772+
totalAmmo = 0;
773+
this.handleItem(this, cheatConfig);
774+
this.reloadCounter = 0;
763775
}
764776

765777
public boolean cheatingAlt() {

src/olupis/world/blocks/defence/UnitRailingRepairTurret.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ public void updateTile(){
9292

9393
if(target != null && efficiency > 0){
9494
float angle = Angles.angle(x, y, target.x + offset.x, target.y + offset.y);
95-
if(Angles.angleDist(angle, rotation) < (target.hitSize() * 0.9f) && (reloadTimer += Time.delta) >= reload){
96-
shoot(multiplier);
95+
if(Angles.angleDist(angle, rotation) < (target.hitSize() * 0.9f) && (reloadTimer += (Time.delta * multiplier)) >= reload){
96+
shoot();
9797
}
9898
rotation = Mathf.slerpDelta(rotation, angle, 0.5f * efficiency * timeScale);
9999
}
@@ -105,8 +105,8 @@ public void updateTile(){
105105
heat = Mathf.approachDelta(heat, 0, 1 / cooldownTime);
106106
}
107107

108-
public void shoot( float multiplier){
109-
target.heal(repairSpeed * edelta() * multiplier);
108+
public void shoot(){
109+
target.heal(repairSpeed * edelta());
110110
reloadTimer = 0f;
111111
heat = 1f;
112112

src/olupis/world/blocks/unit/Fabricator.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import mindustry.type.Liquid;
1111
import mindustry.world.blocks.units.Reconstructor;
1212
import mindustry.world.consumers.*;
13+
import olupis.world.consumer.*;
1314

1415
import static mindustry.Vars.state;
1516

@@ -26,7 +27,7 @@ public Fabricator(String name){
2627
public void init() {
2728
super.init();
2829
if (lubrication == null) {
29-
lubrication = findConsumer(c -> c instanceof ConsumeCoolant);
30+
lubrication = findConsumer(c -> c instanceof ConsumeLubricant);
3031
}
3132
}
3233

src/olupis/world/entities/NyfalisStats.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,10 @@ else if (type instanceof SpawnHelperBulletType || type.spawnUnit != null ) { //T
214214
}else sep(bt, Core.bundle.format("bullet.splashdamage", (int) type.splashDamage, Strings.fixed(type.splashDamageRadius / tilesize, 1)));
215215
}
216216

217+
if(type.fragBullet instanceof DistanceScalingBulletType st){
218+
sep(bt, Core.bundle.format("bullet.splashdamage", ((st.splashDamage * st.minDmgMul) + "-" + st.splashDamage * st.maxDmgMul ), Strings.fixed(st.splashDamageRadius / tilesize, 1)));
219+
}
220+
217221
if (type.splashDamage > 0 && type instanceof EffectivenessMissleType m && m.groundDamageSplashMultiplier != 1f) {
218222
float val = (m.flatDamage ? (m.groundDamageMultiplier / m.damage) * 100 -100 : m.groundDamageMultiplier * 100 - 100);
219223
sep(bt, Core.bundle.format("stat.olupis-splashpenalty", ammoStat(val), m.flatDamage ? m.groundDamageMultiplier : m.damage * m.groundDamageMultiplier, 2));
@@ -298,7 +302,7 @@ else if (type instanceof SpawnHelperBulletType || type.spawnUnit != null ) { //T
298302
bt.add(coll);
299303
}
300304

301-
if (type.fragBullet != null && !(type.intervalBullet instanceof DistanceScalingBulletType)) {
305+
if (type.fragBullet != null && !(type.fragBullet instanceof DistanceScalingBulletType)) {
302306
bt.row();
303307

304308
Table fc = new Table();

0 commit comments

Comments
 (0)