Skip to content

Commit

Permalink
add arena gameflow
Browse files Browse the repository at this point in the history
  • Loading branch information
stohrendorf committed Nov 30, 2023
1 parent c45176d commit 0b3da6c
Show file tree
Hide file tree
Showing 6 changed files with 461 additions and 0 deletions.
1 change: 1 addition & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 34 additions & 0 deletions share/gameflows/cearena/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from ce.engine import TR1ItemId, Gameflow

from object_infos import object_infos
from audio import tracks
from level_sequence import level_sequence, title_menu, lara_home, early_boot

gameflow = Gameflow(
object_infos=object_infos,
tracks=tracks,
level_sequence=level_sequence,
title_menu=title_menu,
title_menu_backdrop="data/titleh.png",
lara_home=lara_home,
early_boot=early_boot,
cheats={
"godMode": True,
"allAmmoCheat": True,
"inventory": {
TR1ItemId.Key1: 10,
TR1ItemId.Key2: 10,
TR1ItemId.Key3: 10,
TR1ItemId.Key4: 10,
TR1ItemId.Puzzle1: 10,
TR1ItemId.Puzzle2: 10,
TR1ItemId.Puzzle3: 10,
TR1ItemId.Puzzle4: 10,
TR1ItemId.PistolsSprite: 1,
TR1ItemId.UzisSprite: 1,
TR1ItemId.MagnumsSprite: 1,
TR1ItemId.ShotgunSprite: 1,
}
} if False else {}, # lgtm [py/constant-conditional-expression]
asset_root="cearena",
)
55 changes: 55 additions & 0 deletions share/gameflows/cearena/audio.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from ce.engine import TR1TrackId, TrackInfo

_AMBIENT = (0, True)
_CUTSCENE = (0, False)
_INTERCEPTION = (1, False)
_EFFECT = (2, False)


def _track(track_id: TR1TrackId, *args):
return {
track_id: TrackInfo([
f"music/track{int(track_id):>02}.flac",
], *args),
}


tracks = {
**_track(TR1TrackId.MainTheme, *_INTERCEPTION), # Main theme
**_track(TR1TrackId.Ambience0, *_AMBIENT, 30), # Caves ambience
**_track(TR1TrackId.Ambience1, *_AMBIENT, 2), # Silence
**_track(TR1TrackId.Ambience2, *_INTERCEPTION), # PC ONLY: Water ambience
**_track(TR1TrackId.Ambience3, *_AMBIENT, 30), # PC ONLY: Wind ambience
**_track(TR1TrackId.Ambience4, *_AMBIENT, 30), # PC ONLY: Pulse ambience
**_track(TR1TrackId.Cutscene1, *_CUTSCENE), # Natla cutscene
**_track(TR1TrackId.Cutscene2, *_CUTSCENE), # Larson cutscene
**_track(TR1TrackId.Cutscene3, *_INTERCEPTION), # Natla scion cutscene
**_track(TR1TrackId.Cutscene4, *_CUTSCENE), # Tihocan cutscene
**_track(TR1TrackId.Poseidon, *_INTERCEPTION), # Poseidon
**_track(TR1TrackId.MainThemeShort, *_INTERCEPTION), # Main theme, short
**_track(TR1TrackId.Thor, *_INTERCEPTION), # Thor
**_track(TR1TrackId.SaintFrancis, *_INTERCEPTION), # St. Francis
**_track(TR1TrackId.Danger, *_INTERCEPTION), # Danger
**_track(TR1TrackId.Stairs, *_INTERCEPTION), # Stairs
**_track(TR1TrackId.Midas, *_INTERCEPTION), # Midas
**_track(TR1TrackId.Level, *_INTERCEPTION), # Lever
**_track(TR1TrackId.Hmm, *_INTERCEPTION), # Hmm...
**_track(TR1TrackId.BigSecret, *_INTERCEPTION), # Big secret theme
**_track(TR1TrackId.Raiders, *_INTERCEPTION), # Raiders
**_track(TR1TrackId.Wolf, *_AMBIENT), # Wolf
**_track(TR1TrackId.Awe, *_INTERCEPTION), # Awe
**_track(TR1TrackId.Gods, *_INTERCEPTION), # Gods
**_track(TR1TrackId.MainThemeReprise, *_INTERCEPTION), # Main theme, reprise
**_track(TR1TrackId.Mummy, *_INTERCEPTION), # Mummy
**_track(TR1TrackId.MidasReprise, *_INTERCEPTION), # Midas, reprise
**_track(TR1TrackId.Secret, *_EFFECT), # Secret theme
}

for i in range(int(TR1TrackId.LaraTalk30) - int(TR1TrackId.LaraTalk0) + 1):
for k, v in _track(TR1TrackId(int(TR1TrackId.LaraTalk0) + i), *_INTERCEPTION).items():
tracks[k] = v

tracks.update(_track(TR1TrackId.LaraTalk27, *_AMBIENT))
tracks.update(_track(TR1TrackId.LaraTalk28, *_AMBIENT))
tracks.update(_track(TR1TrackId.LaraTalk29, *_AMBIENT))
tracks.update(_track(TR1TrackId.LaraTalk30, *_AMBIENT))
163 changes: 163 additions & 0 deletions share/gameflows/cearena/level_sequence.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
from ce.engine import TR1TrackId, Level, TitleMenu, WeaponType, TR1ItemId, SplashScreen


def _fmv(basename: str):
return [
f"FMV/{basename}.AVI",
f"FMV/{basename}.RPL",
]


early_boot = []

title_menu = TitleMenu(
name="Data/TITLE.PHD",
titles={
"en_GB": "Croft Arena",
"de_DE": "Croft Arena",
},
ambient=TR1TrackId.MainTheme,
)

lara_home = []

level_sequence = [
Level(
name="Data/Fall_Raider_Easy.phd",
titles={
"en_GB": "Fall Raider Easy",
"de_DE": "Fall Raider einfach",
},
ambient=TR1TrackId.Ambience1,
default_weapon=WeaponType.None_,
),
Level(
name="Data/Fall_Raider_Medium.phd",
titles={
"en_GB": "Fall Raider Medium",
"de_DE": "Fall Raider mittel",
},
item_titles={
"en_GB": {
TR1ItemId.Key1: "Silver Key",
TR1ItemId.Puzzle1: "Gold Idol",
},
"de_DE": {
TR1ItemId.Key1: "Silberner Schl~ussel",
TR1ItemId.Puzzle1: "Goldener G~otze",
},
},
ambient=TR1TrackId.Ambience1,
default_weapon=WeaponType.None_,
),
Level(
name="Data/Fall_Lara_H.phd",
titles={
"en_GB": "Fall Raider Hard",
"de_DE": "Fall Raider schwer",
},
item_titles={
"en_GB": {
TR1ItemId.Puzzle1: "Machine Cog",
},
"de_DE": {
TR1ItemId.Puzzle1: "Zahnrad",
},
},
ambient=TR1TrackId.Ambience4,
default_weapon=WeaponType.None_,
),
Level(
name="Data/Hide_and_Seek_Manor.phd",
titles={
"en_GB": "Hide and Seek Manor",
"de_DE": "Versteckspiel Herrenhaus",
},
ambient=TR1TrackId.LaraTalk28,
default_weapon=WeaponType.None_,
),
Level(
name="Data/Hide_and_Seek_Peru.phd",
titles={
"en_GB": "Hide and Seek Peru",
"de_DE": "Versteckspiel Peru",
},
item_titles={
"en_GB": {
TR1ItemId.Key1: "Neptune Key",
TR1ItemId.Key2: "Atlas Key",
TR1ItemId.Key3: "Damocles Key",
TR1ItemId.Key4: "Thor Key",
},
"de_DE": {
TR1ItemId.Key1: "Schl~ussel des Neptun",
TR1ItemId.Key2: "Schl~ussel des Atlas",
TR1ItemId.Key3: "Schl~ussel des Damokles",
TR1ItemId.Key4: "Schl~ussel des Thor",
},
},
ambient=TR1TrackId.Ambience3,
default_weapon=WeaponType.None_,
),
Level(
name="Data/Hide_and_Seek_Egypt.phd",
titles={
"en_GB": "Hide and Seek Egypt",
"de_DE": "Versteckspiel ~Agypten",
},
item_titles={
"en_GB": {
TR1ItemId.Key1: "Rusty Key",
},
"de_DE": {
TR1ItemId.Key1: "Rostiger Schl~ussel",
},
},
ambient=TR1TrackId.Ambience3,
default_weapon=WeaponType.None_,
),
Level(
name="Data/Volcanic_Race.phd",
titles={
"en_GB": "Volcanic Race",
"de_DE": "Vulkanisches Rennen",
},
item_titles={
"en_GB": {
TR1ItemId.Puzzle1: "Gold Bar",
},
"de_DE": {
TR1ItemId.Puzzle1: "Goldbarren",
},
},
ambient=TR1TrackId.Ambience3,
default_weapon=WeaponType.None_,
),
Level(
name="Data/Tour_Race_1.phd",
titles={
"en_GB": "Classic Tour Race",
"de_DE": "Klassisches Tour-Rennen",
},
item_titles={
"en_GB": {
TR1ItemId.Key1: "Gold Key",
TR1ItemId.Key2: "Silver Key",
TR1ItemId.Key3: "Rusty Key",
},
"de_DE": {
TR1ItemId.Key1: "Goldener Schl~ussel",
TR1ItemId.Key2: "Silberner Schl~ussel",
TR1ItemId.Key3: "Rostiger Schl~ussel",
},
},
ambient=TR1TrackId.LaraTalk29,
default_weapon=WeaponType.None_,
),
SplashScreen(
path=f"data/CRED0.PNG",
duration_seconds=5,
fade_in_duration_seconds=2,
fade_out_duration_seconds=2,
)
]
5 changes: 5 additions & 0 deletions share/gameflows/cearena/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
meta:
title: "Croft Arena"
author: "JaayStation, SOTOS"
downloadSoundtrack: false
urls: [ ]
Loading

0 comments on commit 0b3da6c

Please sign in to comment.