Skip to content

Commit b220bdd

Browse files
authored
Merge pull request #32 from JiroCab/experimental
VAHHHHHHHHHHHHHHHHHH
2 parents f71aa4e + c2250cf commit b220bdd

31 files changed

+498
-180
lines changed

assets/bundles/bundle.properties

+2
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ block.olupis-hydro-electric-drill.description =Extracts resources from tiles und
198198

199199
block.olupis-wind-mill.name =Wind Mill
200200
block.olupis-wind-mill.description =Generates power from wind. Placing on vents and/or adding oil increases generation.
201+
block.olupis-wind-mill.details =Due to the many contaminants in the atmosphere of the nyflian system, solar based generation was deemed unusable
201202
block.olupis-hydro-mill.name =[teal]Hydro Mill (sbp)
202203
block.olupis-hydro-mill.description =Generates power using water. Deeper water increases generation.
203204
block.olupis-hydro-electric-generator.name =[teal]Hydro Generator (sbp)
@@ -385,6 +386,7 @@ block.olupis-rusted-metal.name =Rusted Metal
385386
block.olupis-non-reproductive-boompuff.name =Boom Puffs (Active)
386387
block.olupis-reproductive-boompuff.name =Boom Puff (Dormant)
387388
block.olupis-dirt-vent.name =Dirt Vent
389+
block.olupis-lubricant-pool.name =Lubricant Pool
388390

389391

390392

Loading
-462 Bytes
Binary file not shown.
628 Bytes
Loading

build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id 'java'
33
id("fr.xpdustry.toxopid") version "3.2.0"
4+
id 'maven-publish'
45
}
56

67
version '1.0'

changelog.txt

+17-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,30 @@
22
https://github.com/JiroCab/Olupis
33
Last updated on 01/09/2025 (+8utc) by Jirocab/RushieWashie
44

5-
= Version 1-7-6 () =
5+
= Version 1-7-7 () =
6+
+ Change: all constructs now have a unit/item selector if its team is cheating or build cost = 0
7+
+ Added: lubricant-pool
8+
~ Balance: Buffed starta, bullets fire the mine's weapon if it lands on a placed mine or no build radius
9+
~ Balance: lexington now slows down like snakes when over buildings
10+
~ Balance: inductionSmelter slag output from 6.1 > 4.5
11+
~ Balance: luridiblatta reworked to be more intuned to other content, dmg reduced and slower bullet
12+
~ Visual: lexington treds are now propelly animated
13+
~ Visual: reaper back weapon no longer uses ammo and not be a just a mace arm lol
14+
~ Bug fix: Hives and support Constructs crashing the game if you place a module on them
15+
~ Bug fix: Changed fix saver to only affect nyfalis blocks so it doesn't enable stuff that are meant to disable (like world procs)
16+
~ Internal: env/tiles sprites are now in sub folders
17+
18+
= Version 1-7-6 (f71aa4e) = https://github.com/JiroCab/Nyfalis/tree/f71aa4ec5e5aa6d005288e9cbaf2c91c5e3cb959
619
+ Tiles added: Dirt Vent
720
~ Spreading moss now randomly rotates to help break up the pattern
821
~ Balance: Visually improved bullets of crusader, lice & all shredder's ammo
922
~ Balance: Shredder's Graphite bullet now bounces
1023
~ Balance: lice's bullet now bounces
1124
~ Balance: fixed corroder bullets not hitting the full range of the turret
1225
~ Balance: porcupine has been given a proper build cost, may still be changed
13-
~ Balance: aegis' missiles visually & added a graphite variant
26+
~ Balance: changed aegis' missiles visually & added a graphite variant
1427
~ Balance: avenger's graphite missile variant now has trail
15-
~ Balance: silgtly improved reaper's weapon visuals
28+
~ Balance: silently improved reaper's weapon visuals
1629
~ Bug fix: mechpads not showing their unit type
1730
~ Bug fix: shade not having proper Ai
1831
~ Bug fix: oversight that overwrote `Styles.flatt`'s colour leading to various other menus being darker than they should
@@ -246,4 +259,4 @@ Last updated on 01/09/2025 (+8utc) by Jirocab/RushieWashie
246259
+ Items - condensedBiomatter, rustyIron, iron, cobalt
247260
+ Liquid - heavyOil, lightOil, steam
248261
+ "Space!" Sound effect added when plant map dialog is shown
249-
+ updated Tech tree
262+
+ updated Tech tree
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

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.6"
17+
subtitle: "Yet another planet mod, v1.7.7"
1818

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

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

src/olupis/content/NyfalisBlocks.java

+16-4
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public class NyfalisBlocks {
8181
redSandVent, snowVent, mycelium, yourcelium, ourcelium, theircelium,
8282

8383
/*Liquid floors*/
84-
redSandWater, lumaGrassWater, brimstoneSlag, algaeWater, algaeWaterDeep, pinkGrassWater, yellowMossyWater, coralReef, slop, slopDeep,
84+
redSandWater, lumaGrassWater, brimstoneSlag, algaeWater, algaeWaterDeep, pinkGrassWater, yellowMossyWater, coralReef, slop, slopDeep, lubricantPool,
8585

8686
/*props*/
8787
yellowBush, lumaFlora, bush, mossyBoulder, mossBoulder, infernalBloom, redSandBoulder, glowBloom, luminiteBoulder, deadBush, glowLilly,
@@ -500,6 +500,17 @@ public static void LoadWorldTiles(){
500500
walkEffect = NyfalisFxs.bubbleSlow;
501501
}};
502502

503+
lubricantPool = new Floor("lubricant-pool"){{
504+
drownTime = 180f;
505+
status = NyfalisStatusEffects.lubed;
506+
statusDuration = 120f;
507+
speedMultiplier = 1.05f;
508+
variants = 0;
509+
liquidDrop = emulsiveSlop;
510+
isLiquid = true;
511+
cacheLayer = CacheLayer.water;
512+
}};
513+
503514
//endregion
504515
//region Props
505516
yellowBush = new Prop("yellow-bush"){{
@@ -1284,13 +1295,13 @@ public static void LoadBlocks(){
12841295
liquidCapacity = 30;
12851296
results = with(
12861297
aluminum, 3,
1287-
cobalt, 1
1298+
cobalt, 1F
12881299
);
12891300
consumeItem(alcoAlloy);
12901301
consumePower(80f /60f);
12911302
liquidOutputDirections = new int[]{4};
12921303
hasLiquids = outputsLiquid = rotate = quickRotate = true;
1293-
liquidOutputs = LiquidStack.with(Liquids.slag, 6.1f / 60f);
1304+
liquidOutputs = LiquidStack.with(Liquids.slag, 4.5f / 60f);
12941305
requirements(Category.crafting, with(iron, 25, lead, 25, copper, 25, alcoAlloy, 20));
12951306
drawer = new DrawMulti(
12961307
new DrawRegion("-bottom"),
@@ -1378,6 +1389,7 @@ public static void LoadBlocks(){
13781389
itemCapacity = 40;
13791390
alternateCapacity = 40;
13801391
failedMakeSoundPitch = 0.7f;
1392+
hasAlternate = false;
13811393
ammo(
13821394
powerAmmoItem ,new SpawnHelperBulletType(){{
13831395
shootEffect = Fx.unitLand;
@@ -1642,7 +1654,7 @@ iron, new SpawnHelperBulletType(){{
16421654
//endregion
16431655
//region Mines
16441656
heavyMine = new ShockMine("heavy-mine"){{
1645-
requirements(Category.effect, ItemStack.with(new Object[]{Items.lead, 25, iron, 12}));
1657+
requirements(Category.effect, ItemStack.with(Items.lead, 25, iron, 12));
16461658
hasShadow = false;
16471659
size = 1;
16481660
health = 50;

src/olupis/content/NyfalisSounds.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class NyfalisSounds {
1818
as2ArmorBreak = new Sound(),
1919
as2PlasmaShot = new Sound(),
2020
cncZhBattleMasterWeapon = new Sound(),
21-
cncZhAcengerPdl = new Sound(),
21+
cncZhAvengerPdl = new Sound(),
2222
sawActiveLoop = new Sound(),
2323
sawCollision = new Sound(),
2424

@@ -40,7 +40,7 @@ public static void LoadSounds(){
4040
as2PlasmaShot = tree.loadSound("as2-plasma-shot");
4141
as2ArmorBreak = tree.loadSound("as2-broke-armor");
4242
cncZhBattleMasterWeapon = tree.loadSound("cnc-zh-battlemaster-weapon");
43-
cncZhAcengerPdl = tree.loadSound("cnc-zh-avenger-pdl");
43+
cncZhAvengerPdl = tree.loadSound("cnc-zh-avenger-pdl");
4444
sawActiveLoop = tree.loadSound("sawblade-active-loop");
4545
sawCollision = tree.loadSound("sawblade-collision");
4646
barrelLaunch = tree.loadSound("barrel-launch");

src/olupis/content/NyfalisTurrets.java

+22-27
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,30 @@
11
package olupis.content;
22

3-
import arc.Core;
4-
import arc.graphics.Color;
5-
import arc.math.Interp;
6-
import arc.math.Mathf;
7-
import arc.struct.EnumSet;
8-
import mindustry.Vars;
3+
import arc.*;
4+
import arc.graphics.*;
5+
import arc.math.*;
6+
import arc.struct.*;
7+
import mindustry.*;
98
import mindustry.content.*;
10-
import mindustry.entities.Effect;
9+
import mindustry.entities.*;
1110
import mindustry.entities.bullet.*;
12-
import mindustry.entities.effect.MultiEffect;
13-
import mindustry.entities.effect.WaveEffect;
14-
import mindustry.entities.part.RegionPart;
11+
import mindustry.entities.effect.*;
12+
import mindustry.entities.part.*;
1513
import mindustry.entities.pattern.*;
16-
import mindustry.gen.Sounds;
17-
import mindustry.graphics.Layer;
18-
import mindustry.graphics.Pal;
19-
import mindustry.type.Category;
20-
import mindustry.world.Tile;
21-
import mindustry.world.blocks.defense.turrets.ItemTurret;
22-
import mindustry.world.blocks.defense.turrets.PowerTurret;
23-
import mindustry.world.blocks.legacy.LegacyBlock;
24-
import mindustry.world.draw.DrawRegion;
25-
import mindustry.world.draw.DrawTurret;
14+
import mindustry.gen.*;
15+
import mindustry.graphics.*;
16+
import mindustry.type.*;
17+
import mindustry.world.*;
18+
import mindustry.world.blocks.defense.turrets.*;
19+
import mindustry.world.blocks.legacy.*;
20+
import mindustry.world.draw.*;
2621
import mindustry.world.meta.*;
27-
import olupis.world.blocks.defence.ItemUnitTurret;
22+
import olupis.world.blocks.defence.*;
2823
import olupis.world.blocks.turret.*;
29-
import olupis.world.consumer.ConsumeLubricant;
30-
import olupis.world.entities.NyfalisStats;
24+
import olupis.world.consumer.*;
25+
import olupis.world.entities.*;
3126
import olupis.world.entities.bullets.*;
32-
import olupis.world.entities.parts.DrawUnstableTurret;
33-
import olupis.world.entities.parts.UnstableRegionPart;
27+
import olupis.world.entities.parts.*;
3428

3529
import static mindustry.Vars.headless;
3630
import static mindustry.content.Items.*;
@@ -709,6 +703,7 @@ public void setStats() {
709703
lightRadius = (size * 8) + 4;
710704
fogRadiusMultiplier = 0.5f;
711705
shootSound = Sounds.respawn;
706+
hasAlternate = false;
712707

713708
ammo(
714709
lead, new SpawnHelperBulletType(){{
@@ -1485,8 +1480,8 @@ public void setStats() {
14851480
}
14861481
};
14871482

1488-
//TODO: Fire the mines weapon on place if cant be built like in no build rad
1489-
strata = new ItemTurret("strata"){{
1483+
//TODO: Mixed items can stop firing at all
1484+
strata = new NyfalisItemTurret("strata"){{
14901485

14911486
ammo(
14921487
iron, new BasicBulletType(0,0){{

src/olupis/content/NyfalisUnits.java

+25-18
Original file line numberDiff line numberDiff line change
@@ -991,23 +991,25 @@ public static void LoadUnits() {
991991
statusOnOwner = true;
992992
layer = Layer.groundUnit - 0.01f;
993993
status = NyfalisStatusEffects.deployed;
994+
ownerStatus = StatusEffects.slow;
994995
incendChance = incendSpread = 0f;
995996
smokeEffect = shootEffect = Fx.none;
996997
chargeEffect = hitEffect = NyfalisFxs.hitTracter;
997998
colors = new Color[]{Pal.regen.cpy().a(.2f), Pal.regen.cpy().a(.5f), Pal.regen.cpy().mul(1.2f), Color.white};
998999
}};
9991000
}},
1000-
new SnekWeapon("flamethrower"){{
1001-
top = false;
1001+
new SnekWeapon(""){{
1002+
x = 0;
1003+
y = -10f;
10021004
shootSound = Sounds.flame;
10031005
shootY = 2f;
10041006
reload = 35f;
10051007
shootCone = 360f;
10061008
baseRotation = 180f;
10071009
minShootVelocity = 0.1f; //So they don't dash while on the target or something
1008-
weaponSegmentParent = 1;
1010+
weaponSegmentParent = 0;
10091011
ignoreRotation = dashShoot = dashExclusive = partialControl = true;
1010-
rotate = alternate = mirror = aiControllable = false;
1012+
rotate = alternate = mirror = aiControllable = top = useAmmo = false;
10111013
ejectEffect = Fx.none;
10121014
bullet = new BulletType(4.2f, 37f){{
10131015
ammoMultiplier = 3f;
@@ -1166,30 +1168,31 @@ public static void LoadUnits() {
11661168
rotationLimit = 90f;
11671169
rotate = true;
11681170
mirror = top = false;
1169-
bullet = new BasicBulletType(4, 20){{
1171+
bullet = new BasicBulletType(2, 20){{
11701172
width = 5f;
11711173
height = 7f;
1172-
lifetime = 72;
1174+
lifetime = 120;
11731175
trailWidth = 1.5f;
11741176
trailLength = 4;
11751177
weaveScale = 2;
11761178
weaveMag = 3f;
1177-
shrinkX = -0.60f;
1178-
shrinkY = -0.47f;
1179+
shrinkX = -0.70f;
1180+
shrinkY = -0.57f;
11791181
frontColor = NyfalisColors.ironBullet;
11801182
backColor = NyfalisColors.ironBulletBack;
11811183
trailColor = NyfalisColors.rustyBulletBack;
11821184
hitEffect = despawnEffect = Fx.flakExplosion;
11831185

11841186
fragBullets = 1;
1185-
fragBullet = new DistanceScalingBulletType(100, 22){{
1187+
fragBullet = new DistanceScalingBulletType(30, 22){{
11861188
trailEffect = despawnEffect = smokeEffect = shootEffect = hitEffect = Fx.none;
11871189
maxDst = 30 * Vars.tilesize;
11881190
killShooter = collidesAir = false;
11891191
fragBullets = 8;
11901192
fragSpread = 360;
11911193
fragRandomSpread = 0;
11921194
minDst = Vars.tilesize * 10;
1195+
minDmgMul = 0.3f;
11931196
}};
11941197
}};
11951198
}});
@@ -1211,7 +1214,7 @@ public static void LoadUnits() {
12111214

12121215
rotateMoveFirst = canDeploy = true;
12131216
constructor = UnitWaterMove::create;
1214-
treadRects = new Rect[]{new Rect(12 - 32f, 7 - 32f, 14, 51)};
1217+
12151218
abilities.addAll(
12161219
new CarrierResupplyAblity(1),
12171220
new UnitRallySpawnAblity(zoner, 60f * 15f, 0, 2.5f)
@@ -1230,7 +1233,6 @@ public static void LoadUnits() {
12301233

12311234
rotateMoveFirst = canDeploy = true;
12321235
constructor = UnitWaterMove::create;
1233-
treadRects = new Rect[]{new Rect(12 - 32f, 7 - 32f, 14, 51)};
12341236
abilities.addAll(
12351237
new CarrierResupplyAblity(2),
12361238
new UnitRallySpawnAblity(regioner, 60f * 15f, 0, 6.5f)
@@ -1243,7 +1245,7 @@ public static void LoadUnits() {
12431245
soundVol = 0.7f;
12441246
targetInterval = targetSwitchInterval = 14f;
12451247
mirror = false;
1246-
shootSound = NyfalisSounds.cncZhAcengerPdl;
1248+
shootSound = NyfalisSounds.cncZhAvengerPdl;
12471249
bullet = new BulletType(){{
12481250

12491251
shootEffect = Fx.shootSmokeSquare;
@@ -1255,7 +1257,7 @@ public static void LoadUnits() {
12551257
}};
12561258

12571259
//lexington -> Carrier a long range PDL w/ warm up & laser pointer
1258-
lexington = new LeggedWaterUnit("lexington"){{
1260+
lexington = new DuckyTubeTankUnitType("lexington"){{
12591261
groundSpeed = 0.6f;
12601262
navalSpeed = 1f;
12611263

@@ -1266,14 +1268,14 @@ public static void LoadUnits() {
12661268
legCount = 0;
12671269
rotateSpeed = 3.5f;
12681270
researchCostMultiplier = 0f;
1271+
legMoveSpace = 0;
12691272

12701273
immunities.add(StatusEffects.wet);
12711274
rotateMoveFirst = canDeploy = naval = hovering = true;
12721275
canDrown = ammoDepletesOverTime = killOnAmmoDepletion = omniMovementGround = omniMovementNaval = legPhysicsLayer = allowLegStep = false;
12731276
constructor = LegsUnit::create; //Legged so it doesnt slow down in deep water
12741277
pathCost = NyfalisPathfind.costPreferNaval;
12751278

1276-
// abilities.add(new UnitRallySpawnAblity(regioner, 60f * 15f, 0, 6.5f));
12771279
weapons.add(new LaserPointerPointDefenceWeapon("olupis-lexington-point-defense"){{
12781280
x = 0;
12791281
y = -7f;
@@ -1284,7 +1286,7 @@ public static void LoadUnits() {
12841286
soundPitchMax = 0.8f;
12851287
targetInterval = targetSwitchInterval = 12f;
12861288
mirror = false;
1287-
shootSound = NyfalisSounds.cncZhAcengerPdl;
1289+
shootSound = NyfalisSounds.cncZhAvengerPdl;
12881290

12891291
hitAoeEffect = new MultiEffect( NyfalisFxs.miniPointHit);
12901292
bullet = new BulletType(){{
@@ -1300,21 +1302,26 @@ public static void LoadUnits() {
13001302
new UnitRallySpawnAblity(district, 60f * 15f, 0, 6.5f)
13011303
);
13021304
parts.addAll(
1303-
new FloaterTreadsPart("-tracks"){{
1305+
new FloaterTreadsPart("-treads"){{
13041306
mirror = under = true;
1305-
x = 3;
1307+
drawRegion = false;
1308+
x = 4;
13061309
y = 0;
1307-
moveX = 5;
1310+
moveX = 4;
1311+
treadPullOffset = 4;
13081312
layerOffset = -0.001f;
1313+
treadRects = new Rect[]{new Rect(-14f, -65, 28, 130)};
13091314
progress = NyfPartParms.NyfPartProgress.floatingP.inv();
13101315
alphaProgress = NyfPartParms.NyfPartProgress.floatingP.inv();
13111316
}}
13121317
);
13131318
}};
13141319

13151320
// resolute -> Constuct ablity, mini figther-bombers that need to reload at the ship, dis >= ability rebuild = sucide bombers
1321+
// -> has payload, takes a bunch of t3 and bellow and lets them shoot out of them, cnc:ra2 battle fortress / cnc:Zh battle bus
13161322
// nimitz -> Flag ship, boost, payload, Hex sheild when landed, prop/unit booster when flying
13171323

1324+
13181325
//endregion
13191326
//region Naval - Guard
13201327
//Minigun turret mounted on the front, 10mm autocannon mounted on the back

0 commit comments

Comments
 (0)