Skip to content

Commit

Permalink
Ready for Obsidian
Browse files Browse the repository at this point in the history
Copy of BrutalObaddon Script so that you can use it with Obsidian.
  • Loading branch information
stoffelkopf committed May 3, 2022
1 parent bafa651 commit 3f17ece
Show file tree
Hide file tree
Showing 25 changed files with 3,325 additions and 0 deletions.
12 changes: 12 additions & 0 deletions BuildPK3.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
powershell Compress-Archive -path data, games, modules, credits.txt, GPL.txt -destination BrutalObsidian.zip
@ echo off
REN BrutalObsidian.zip BrutalObsidian.pk3

ECHO.
IF EXIST BrutalObsidian.pk3 (
ECHO BrutalObsidian.pk3 built successfully
) ELSE (
ECHO Build Failed!
ECHO If you see an error about Compress-Archive not being a recognised command you may need to update your version of .NET and/or powershell
)
PAUSE
3 changes: 3 additions & 0 deletions BuildPK3.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

zip -r BrutalObAddon.pk3 data games modules credits.txt GPL.txt
339 changes: 339 additions & 0 deletions GPL.txt

Large diffs are not rendered by default.

62 changes: 62 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
**The curently supported version of Brutal Doom is brutalv21.pk3**

# BrutalObsidian

For those of you who don't know [Obsidian](https://github.com/dashodanger/Obsidian/releases/) is a random map generator for Doom. It's really good and you should check it out.

**Features**

* New monsters: Belphegor, Juggernaut, Mother Demon, Volcabus, Ancient Arachnotron, Zyberdemon (from 00_Zombie_00)
* New weapons: BFG 10k, Grenade Launcher and Railgun
* Probability of each of the new monsters/weapons appearing can be tweaked or switched off completely
* Grenades appear alongside other ammo pickups
* Brutal Doom specific pickups

The generated Level WAD must be loaded after Brutal Doom PK3 !!!!!!


**How to use - Latest development version**

1) Download Obsidian if you haven't already and make sure you have the latest supported Brutal Doom. See below for current supported versions.

2) Download or clone this repository.

3) If on Windows run BuildPK3.bat, requires an up to date version of Powershell and .NET
If on *nix run BuildPK3.sh, requires zip

If this builds successfully then move on to step 4. If this method fails or otherwise can't be used then try the manual method in the next step

3 - Manual) Add all the folders to a zip folder called BrutalObsiadian.zip

Rename it to change the extension from .zip to .pk3, if on Windows you can use the included zip2pk3.bat to do this for you.

Note that if you downloaded this from github rather than cloning the repo you can't just rename that .zip, first you must unzip it, then put the folders that are *inside* the BrutalObsidian-whatever folder that comes out into a zip. This is the way Gitlab works, there's nothing I can do about it.

4) Copy or move the pk3 to Obsidians's addon directory. This will be in the same place as Obsidian.exe on Windows or /usr/share/obsidian/addons on Linux.

5) Run Obsidian, select Menu, Addon List and check the box for BrutalObsidian. Restart Obsidian.

6) Click build to generate a wad with the new maps.

7) Load this wad **after** Brutal Doom

8) Happy bug hunting.

# Current supported versions

  | Version | Expected filename
-- | -- | --
Obsdian Beta 19
Brutal Doom | 21 | brutalv21.pk3


**Known issues**

* If you get "Script error, "brutalv20b.pk3:cvarinfo" line 1: cvar 'bd_bloodamount' already exists" then you are loading brutal doom twice. Try loading *just* the generated wad, it should pull in brutal automatically.
* Currently any vanilla Doom/Doom2 maps generated while this mod is active can have missing textures or objects. This will be fixed before the next release.
* double check that the pk3 is BrutalObAddon.pk3 not BrutalObAddon.pk3.zip

**A note on compiled acs code**
This mod contains some precompiled acs objects in BrutalObAddon/acs. The sourcecode for these is inlcuded in the same folder with the .acs extension. If you prefer to compile this code yourself you will need acc (I compiled with version 1.56) which is available in source and binary forms on the zdoom [download page](https://zdoom.org/downloads). The compiled object should have the same name as the source file but with .acs replaced with .o and be placed in the acs folder.

[Obsidian Download](https://github.com/dashodanger/Obsidian/releases)
9 changes: 9 additions & 0 deletions credits.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Brutal Oblige Original Version from Robert Cross - https://gitlab.com/CloudOfShame/BrutalOblige

Zyberdemon sprites - 00_Zombie_00

Wolfenstein SS firing rotation sprites - DoomJedi
SS firing rotation sprites - ItsNatureToDie
SS pain rotation sprites - PSTrooper

This mod uses some code from Sgt Mark IV's Bolognese mod in addition to reusing/adapting some code from Brutal Doom itself
Empty file added data/brutaloblige/A_START
Empty file.
134 changes: 134 additions & 0 deletions data/brutaloblige/BOLOGACS.acs
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
#library "BOLOGACS"
#include "zcommon.acs"

script "BBGORE_CheckKill" KILL
{

//First we check if it's actually a monster, and if it bleeds.
if (CheckFlag(0, "ISMONSTER") || !CheckFlag(0, "NOBLOOD"))
{
//Minimal health for gibbing.
if (GetActorProperty(0, APROP_Health) < (-30))
{

//Possibly a Lost Soul or something similar, don't spawn anything.
if (GetActorProperty(0, APROP_RenderStyle) != STYLE_Normal) { terminate;}

//Possibly a tiny thing like a rat or a spider.
if (GetActorProperty(0, APROP_Height) < 9.0) {
Spawn("SawBlood", GetACtorX(0), GetACtorY(0), GetActorZ(0));
SetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001);
terminate;}

//Possibly a medium thing like a dog.
if (GetActorProperty(0, APROP_Height) < 32.0) {
Spawn("MeatDeath_BologneseSmall", GetACtorX(0), GetACtorY(0), GetActorZ(0));
SetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001);
terminate;}

//Normal gibs
Spawn("MeatDeath_Bolognese", GetACtorX(0), GetACtorY(0), GetActorZ(0));
//Might be a large enemy, like a Cacodemon or a Mancubus, spawn extra gibs.
if (GetActorProperty(0, APROP_Radius) > 30.0) { Spawn("MeatDeath_BologneseFat", GetACtorX(0), GetACtorY(0), GetActorZ(0));}
//Might be a huge enemy, like a Cyberdemon, spawn extra gibs.
if (GetActorProperty(0, APROP_Height) > 100.0){ Spawn("MeatDeath_BologneseGiant", GetACtorX(0), GetACtorY(0), GetActorZ(0));}
SetActorProperty(0, APROP_ScaleX, 0.001);
SetActorProperty(0, APROP_ScaleY, 0.001);
terminate;
}

delay(35);
Spawn("GrowingBloodPool", GetACtorX(0), GetACtorY(0), GetActorZ(0));
}


}

Script "BD_CheckBloodIntensity" (VOID)
{

if (GetCvar("isrunningzandronum") == 1)
{
if (GetCvar( "bd_bloodamount") == 0) { SetActorState(0,"LowBlood"); }
if (GetCvar( "bd_bloodamount") == 1) { SetActorState(0,"LowBlood"); }
if (GetCvar( "bd_bloodamount") == 3) { SetActorState(0,"LotsOfBlood"); }
if (GetCvar( "bd_bloodamount") >= 4) { SetActorState(0,"AbsurdBlood"); }
}


if (GetCvar("isrunningzandronum") == 0)
{
if (GetCvar("zdoombrutalblood") == 0) { SetActorState(0,"LowBlood"); }
if (GetCvar("zdoombrutalblood") == 1) { SetActorState(0,"LowBlood"); }
if (GetCvar("zdoombrutalblood") == 3) { SetActorState(0,"LotsOfBlood"); }
if (GetCvar("zdoombrutalblood") == 4) { SetActorState(0,"AbsurdBlood"); }
}


if (GetCvar("isrunningzandronum") == 1)
{
if (GetCvar("bd_bloodamount") >= 5)
{
SetActorState(0,"AbsurdBlood");
GiveInventory("AnimuGore", 1);
}
}

if (GetCvar("isrunningzandronum") == 0)
{
if (GetCvar("zdoombrutalblood") >= 5)
{
SetActorState(0,"AbsurdBlood");
GiveInventory("AnimuGore", 1);
}
}

}



Script "BD_CheckIfLowBlood" (VOID)
{
if (GetCvar("bd_bloodamount") == 1) { SetActorState(0,"Vanish"); }
if (GetCvar("bd_bloodamount") == 0) { SetActorState(0,"Vanish"); }
}



script "BD_CheckIfOverLiquid" (void) //Water Small Splash
{
if (CheckActorFloorTexture(0, "FWATER1")) GiveInventory("IsOverWater", 1);
if (CheckActorFloorTexture(0, "FWATER2")) GiveInventory("IsOverWater", 1);
if (CheckActorFloorTexture(0, "FWATER3")) GiveInventory("IsOverWater", 1);
if (CheckActorFloorTexture(0, "FWATER4")) GiveInventory("IsOverWater", 1);

if (CheckActorFloorTexture(0, "NUKAGE1")) GiveInventory("IsOverNukage", 1);
if (CheckActorFloorTexture(0, "NUKAGE2")) GiveInventory("IsOverNukage", 1);
if (CheckActorFloorTexture(0, "NUKAGE3")) GiveInventory("IsOverNukage", 1);
if (CheckActorFloorTexture(0, "NUKAGE4")) GiveInventory("IsOverNukage", 1);


if (CheckActorFloorTexture(0, "SLIME01")) GiveInventory("IsOverSlime", 1);
if (CheckActorFloorTexture(0, "SLIME02")) GiveInventory("IsOverSlime", 1);
if (CheckActorFloorTexture(0, "SLIME03")) GiveInventory("IsOverSlime", 1);
if (CheckActorFloorTexture(0, "SLIME04")) GiveInventory("IsOverSlime", 1);
if (CheckActorFloorTexture(0, "SLIME05")) GiveInventory("IsOverSlime", 1);
if (CheckActorFloorTexture(0, "SLIME06")) GiveInventory("IsOverSlime", 1);
if (CheckActorFloorTexture(0, "SLIME07")) GiveInventory("IsOverSlime", 1);
if (CheckActorFloorTexture(0, "SLIME08")) GiveInventory("IsOverSlime", 1);

if (CheckActorFloorTexture(0, "SLIME09")) GiveInventory("IsOverLava", 1);
if (CheckActorFloorTexture(0, "SLIME10")) GiveInventory("IsOverLava", 1);
if (CheckActorFloorTexture(0, "SLIME11")) GiveInventory("IsOverLava", 1);
if (CheckActorFloorTexture(0, "SLIME12")) GiveInventory("IsOverLava", 1);

if (CheckActorFloorTexture(0, "LAVA1")) GiveInventory("IsOverLava", 1);
if (CheckActorFloorTexture(0, "LAVA2")) GiveInventory("IsOverLava", 1);
if (CheckActorFloorTexture(0, "LAVA3")) GiveInventory("IsOverLava", 1);
if (CheckActorFloorTexture(0, "LAVA4")) GiveInventory("IsOverLava", 1);

if (CheckActorFloorTexture(0, "BLOOD1")) GiveInventory("IsOverBlood", 1);
if (CheckActorFloorTexture(0, "BLOOD2")) GiveInventory("IsOverBlood", 1);
if (CheckActorFloorTexture(0, "BLOOD3")) GiveInventory("IsOverBlood", 1);
if (CheckActorFloorTexture(0, "BLOOD4")) GiveInventory("IsOverBlood", 1);
}
Binary file added data/brutaloblige/BOLOGACS.o
Binary file not shown.
Loading

0 comments on commit 3f17ece

Please sign in to comment.