ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/AE/packages/84000Green_Room/bsl/common/Green_Room/main.bsl
Revision: 1128
Committed: Sat Apr 4 15:58:51 2020 UTC (5 years, 7 months ago) by iritscen
File size: 4791 byte(s)
Log Message:
Adding unfinished Green Room package, for anyone who wants to work on it (see work/docs/To do.txt).

File Contents

# Content
1 # Green Room
2 # A room for playing out moves against a chromakey background
3 # Recommended viewing size:
4 # |--------------------------------------------------------------------------|
5
6 var int chose_yes = 0;
7 var int countdown = 10;
8
9 func void main(void)
10 {
11 # Set up environment
12 sky_show_sky = 0; # hide skybox
13 gs_show_ui = 0; # do not show UI
14 m3_clear_color = 38400; # set background color to green
15 #gs_show_particles = 0; # hide particles
16 ui_suppress_prompt = 1; # turn off objective/help prompts
17
18 fork DrawMainMenu();
19 fork WatchForYes();
20 }
21
22 # Allow user to choose an anim showcase or just free-run
23 func void DrawMainMenu(void)
24 {
25 # XXX - also allow third option of fixed camera setup within free-run mode so user can perform his own moves from a fixed vantage point
26 dmsg("Welcome to Green Room");
27 dmsg("Want to run the animation showcase?");
28 dmsg("Press [jump] for 'yes' in the next");
29 dmsg("10 seconds. After that, you can");
30 dmsg("just free-run...");
31 sleep(300);
32 countdown = 5;
33 fork CountDown();
34 }
35
36 # Count down while user has not made a choice in WatchForYes() yet
37 func void CountDown(void)
38 {
39 if (countdown eq 5)
40 dmsg("5...");
41 else if (countdown eq 4)
42 dmsg("4...");
43 else if (countdown eq 3)
44 dmsg("3...");
45 else if (countdown eq 2)
46 dmsg("2...");
47 else if (countdown eq 1)
48 dmsg("1...");
49 if ((countdown > 0) and (chose_yes eq 0))
50 {
51 sleep(60);
52 countdown = countdown - 1;
53 fork CountDown();
54 }
55 else
56 {
57 dmsg(" ");
58 dmsg(" ");
59 dmsg(" ");
60 dmsg(" ");
61 dmsg(" ");
62 }
63 }
64
65 # Allow user to jump to choose to run an anim showcase
66 func void WatchForYes(void)
67 {
68 chr_wait_animtype(0, jump);
69 if ((countdown > 0) and (chose_yes eq 0))
70 {
71 chose_yes = 1;
72 chr_animate(0, KONOKOact_yes1);
73 sleep(20);
74 DrawShowcaseMenu();
75 }
76 }
77
78 # XXX - break this out into functions for the menus described within
79 func void DrawShowcaseMenu(void)
80 {
81 # XXX - faction menu: pick faction
82 # XXX - 1. Konoko
83 # XXX - 2. Syndicate
84 # XXX - 3. TCTF
85 # XXX - 4. Civilian
86 # XXX - 5. Exit (free-run mode)
87
88 # XXX - MELE menu: where needed, pick specific MELE ID under above faction -- see "Melee IDs by faction.rtf"; print name of MELE ID once it is selected
89
90 # XXX - character variant menu: allow user to pick exact appearance of char
91
92 # XXX - angle menu: allow user to pick angle to view char from -- at least offer left side and right side, but other options would be front, rear, top, 3/4 left side and 3/4 right side
93 # XXX - consider making these choices "checkboxes", i.e. you can choose to see moves from multiple angles, which will play the move successively from each angle
94
95 # XXX - anim type menu: pick type -- attack, victim (hit, thrown, blownup, KOed, etc.), maneuver (dodge, jump, walk, run, crouch-walk, etc.)
96
97 # XXX - variant menu: pick anim variant -- melee, RIF or PIS
98
99 # XXX - change room color to a preset value that is suitable for this class, taking into account colors on char and colors of their particle effects
100
101 # XXX - final menu: change color or start
102 # XXX - 1. Change Color (leads to color menu)
103 # XXX - 2. Run Showcase
104
105 # XXX - color menu (if chosen)
106 # XXX - 1. Green
107 # XXX - 2. Blue
108 # XXX - 3. Black
109 # XXX - 4. White
110 # XXX - 5. Run Showcase
111
112 PrepKonoko();
113
114 # XXX - call specific RunShowcase_XXX() function
115 }
116
117 # Set up Konoko for the showcase
118 func void PrepKonoko(void)
119 {
120 # Make Konoko invisible
121 chr_mini_me = 1;
122 chr_mini_me_amount = 0.0;
123 # XXX - pin Konoko so that user input doesn't have a chance of moving the camera or causing a sound effect to play
124 }
125
126 # XXX - make 45 MELE-specific functions named like this, where "ID" = MELE ID
127 func void RunShowcase_ID(void)
128 {
129 # XXX - spawn chosen char and set focus to them or point camera at their spawn flag
130 # XXX - run through all anims for this combination of MELE ID, anim type (the attack / victim / maneuver option) and TRAC variant (COM / PIS / RIF)
131 # XXX - note: use table on https://wiki.oni2.net/Combat_moves as reference for TRAM names, etc.
132 # XXX - step 1: print each anim name (e.g. "Spinning Suplex"), TRAM name, and the input to trigger the move in-game
133 # XXX - step 2: clear this text after one second and play the anim
134 # XXX - step 3: wait some time after anim finishes for any particle effects to subside
135 # XXX - step 4: move char back to spawn flag and reset their facing
136 # XXX - note: put pistol or rifle in hand for PIS/RIF anims
137 # XXX - note: spawn dummy for throw anims so char can throw him or be thrown by him
138 # XXX - note: knock down char before playing getup anims
139 }

Properties

Name Value
svn:executable *