Death Road to Canada

Death Road to Canada

View Stats:
RyukaRuki 18 Apr, 2017 @ 6:32pm
Assistance in creating Special Characters?
I've been attempting to create a new custom-made special character without replacing an old one. It hasn't been working so far. I'd like help, if it isn't too much of a bother.

Here's what I think I found so far:

gfx->chars->dr2c_special_chars - add/edit special character appearances
deathforth->charstatmods - .----ify defines the character's stats and MOD_---- #set let's them say things mid-battle.
deathforth->dailydecks - adding card: ....-test makes the special character a potential random road recruit.
deathforth->blurb->sc->any file - in-car dialogue.
deathforth->events->sc->most files - despair events.
deathforth->events->sc->the cyoa files - recruitment events, choices, and outcomes.
deathforth->blurb->blogic - connects the blurb files.

I'll post my code below in the comments. Hopefully it'll be somewhat readable...

The custom character will be called "Garrus" since it was the first custom sprite I made for the custom familiar characters. The character is from Mass Effect, so hopefully I did a decent job with his lines...

Maybe I should've renamed him G*rrus instead, but other modders that mod in characters refer to them normally anyway, right? Maybe I'm overthinking this...
Last edited by RyukaRuki; 18 Apr, 2017 @ 7:01pm
< >
Showing 1-15 of 34 comments
RyukaRuki 18 Apr, 2017 @ 6:44pm 
From the file deathforth->charstatmods, here's what I added:

enum MOD_GARRUS


MOD_GARRUS #set
: garrussay 1 16 rnd case
1 of "Never saw me coming!" endof
2 of "Utilizing high impact attack!" endof
3 of "Scratch one!" endof
4 of "I love this part." endof
5 of "As charming as ever." endof
6 of "Just like old times!" endof
7 of "Out of my way, husk!" endof
8 of "Just because I've got a stick up my butt doesn't mean I can't beat you to death with it." endof
9 of "Scoped and dropped!" endof
10 of "Walking around this place makes me sick..." endof
11 of "Overload!" endof
12 of "Turian rebel coming through!" endof
13 of "This wasn't covered in my training manuals..." endof
14 of "They had it coming." endof
15 of "One less to worry about!" endof
16 of "I'm hard to kill." endof

endcase ;

: garrusattack
// me .action_cooldown@ if me exit then
// 30 me .action_cooldown!
me .carried if
($ RAINBOW .. "Here goes nothing!" $) me .yellmsg

else
($ RAINBOW .. garrussay $) me .yellmsg
then
;

: garrus-events to eventid to me
eventid THING_EVENT_SWING = if garrusattack then
; last animate!


: .garrusify
90 over .specialtype!
-3 STAT_MORALE 2 pick .bonus!
2 over .fitness!
0 over .female!
2 over .strength!
6 over .shooting!
"An alien from outer space. An excellent leader with high skill. Has terrible luck." over .job!
4 over .mechanical!
2 over .medical!
6 over .loyalty!
6 over .composure!
4 over .wits!
3 over .attitude!
3 over .carrying.slot_count!
WEAPON_RAYGUN over .weapona!
WEAPON_TREEBRANCH over .weaponb!
drop
;
RyukaRuki 18 Apr, 2017 @ 6:45pm 
If you guys think of better lines, I'd appreciate it.
RyukaRuki 18 Apr, 2017 @ 6:46pm 
deathforth->dailydecks:

card: garrus-test
RyukaRuki 18 Apr, 2017 @ 6:52pm 
deathforth->blurb->sc->any file (added file 'garrus'):

: garrus-talk
blurbslot 0= if
solo if
($ "I'm all alone..." $) blurbsay
then;
($ "Hey, " .. 2nd-char .name@ .. ", Do you have a minute?" $) blurbsay
else
blurbslot 2 < if
($ "Can it wait for a bit? I'm in the middle of some calibrations." $) blurbsay
then
50 %chance if
($ "I know what that's like. I can wait." $) 1st-char .blurbsay
STAT_MORALE me .stat++
else
($ "... Shepherd must hate me." $) 1st-char .blurbsay
STAT_MORALE me .stat--
then
then
then
;

: GARRUS-oneline1 "Kasumi uploaded the video of Tali on shore leave. I gotta see this!" ;
: GARRUS-oneline2 "Spirits, this planet's a mess..." ;
: GARRUS-oneline3 "Are these things husks? They don't look like them, but they act like them." ;
: GARRUS-oneline4 "Why are we heading to the cold? Turians don't like cold." ;
: GARRUS-oneline5 "What sick, twisted doctor screwed up this time?" ;
: GARRUS-oneline6 "I miss Palaven..." ;
: GARRUS-oneline7 "Just once I'd like something in my life to go right." ;
: GARRUS-oneline8 "This beats driving a Mako." ;
: GARRUS-oneline9 "Good thing I brought rations. I can't eat levo food." ;
: GARRUS-oneline10 "This is kind of a step down from Reapers." ;
: GARRUS-oneline11 "Has Earth always been like this?" ;
: GARRUS-oneline12 "If anyone needs to reload or go to the bathroom, now's your chance." ;
: GARRUS-oneline13 "Who's butt needs kicked today?" ;
: GARRUS-oneline14 "I'm out of medi-gel. If we get knocked out, we're good as dead." ;
: GARRUS-oneline15 "Why does everybody keep hitting on me?" ;
: GARRUS-oneline16 "I work for C-Sec. There's so much red tape there that I can't do my freaking job though." ;
: GARRUS-oneline17 "This place is kinda grey. I don't know what to do with grey." ;

deck-new
card: GARRUS-oneline1
card: GARRUS-oneline2
card: GARRUS-oneline3
card: GARRUS-oneline4
card: GARRUS-oneline5
card: GARRUS-oneline6
card: GARRUS-oneline7
card: GARRUS-oneline8
card: GARRUS-oneline9
card: GARRUS-oneline10
card: GARRUS-oneline11
card: GARRUS-oneline12
card: GARRUS-oneline13
card: GARRUS-oneline14
card: GARRUS-oneline15
card: GARRUS-oneline16
card: GARRUS-oneline17
constant GARRUS-ONELINERS
GARRUS-ONELINERS var garrus-oneliners
GARRUS-ONELINERS shuffles to garrus-oneliners

: garrus-oneliner
garrus-oneliners depths 0= if GARRUS-ONELINERS shuffles to garrus-oneliners then
blurbslot 0= if
drawcard blurbsay
then
;


deck-new
17 cards: garrus-oneliner

constant BLURB-GARRUS-DECK
BLURB-GARRUS-DECK var blurb-garrus-deck
BLURB-GARRUS-DECK shuffles to blurb-garrus-deck
RyukaRuki 18 Apr, 2017 @ 6:55pm 
deathforth->events->sc->most files (added file 'garrus'):

uses base.df
uses charfilt.df
uses charstats.df
uses road.df

cyoa{ road{

cyoa: garrus-despair
bully choosechar cicon
"INDOCTRINATION" cyoa-title!
solo if
($ cname .. " starts acting crazy and irrational. A giant spaceship appears from overhead. Swarms of hostiles appear nearby. They seem to be robots of some kind from the ship. They take him away with ease. He stopped resisting a while ago...
None of them are seen again.
Well that was a crappy ending. At least it didn't involve hologram children!" $) cyoa-text! badfx
decruit-bad-silent
then;
($ cname .. " starts acting crazy and irrational. He leaves temporarily to clear his head. Based on the sounds, it only got worse. A spaceship was seen flying in his direction. Maybe it was friendly?
It most certainly wasn't. The group knew he was a goner after he called for help. They booked it before they were next.
He was never seen again.
It could've ended worse. It could have involved 3 variants of colored lasers." $) cyoa-text! badfx
decruit-bad-silent
;


} }

RyukaRuki 18 Apr, 2017 @ 6:57pm 
deathforth->events->sc->the cyoa files:

cyoa-choice: garrus-recruit
ricon
recruitee .mechanicalREV recruitee .shootingREV
team-count 3 > if
($ rname .. " doesn't think he can fit in a 4-person car with 4 other people.
He already has enough bad driving experiences." $) cyoa-text! recruit-replace?
then;
($ rname .. " enters the car. He only asks that the driver not drive off a cliff and overturn the car. Something about a Mako?" $) cyoa-text! goodfx
recruited
;

cyoa-choice: garrus-calibrations
ricon
($ Thegroup .. " wants to learn how to shoot like that! The alien gladly calibrates their aim and mech skills via quick training." $) cyoa-text! goodfx
.mechanical++ foreach-team-char
.shooting++ foreach-team-char
;

cyoa: garrus-test
"The Archangel" cyoa-title!
char-gen to recruitee
"Garrus" recruitee .name!
ricon
4 recruitee .morale! recruitee .garrusify
($ Thegroup .. " is caught off guard by bandits. They don't intend for you to leave.
There's too many to fight like this. All hope seems lost...
A loud gunshot rings in the air from afar.
" .. thegroup .. " is startled by the subsequent THUD! They use the distraction to ward off the brigands and run before more come.
They head for the source of the sniper fire and find someone covered from head to toe in battle armor. The shape isn't quite human...
He resumes his sniper fire to clear the area before removing his helmet. He's an alien!? Actually, it's the apocalypse.
This really isn't anything to be too shocked about." $) cyoa-text! basic-tone
choice( "Recruit weird alien thing" )choice: garrus-recruit
choice( "Make a break for the car!" )choice
choice( "CALIBRATIONS!" )choice: garrus-calibrations
;
RyukaRuki 18 Apr, 2017 @ 7:03pm 
deathforth->blurb->blogic:

uses blurb/sc/garrus.df


1st-st 90 = if
blurb-garrus-deck depths 0= if BLURB-GARRUS-DECK shuffles to blurb-garrus-deck then
then;
Mezzelo 18 Apr, 2017 @ 7:56pm 
It can be hard to figure out what's broken when you try adding everything at once. I would suggest adding one thing at a time until you can find what halts the code, then moving on from there: Try doing this in the order of character methods, combat events (e.g. talking while attacking), blurbs, then last road events (recruitment, despair, etc.)

You can find a guide on accessing the console here. You can utilize commands from here to help test your character, via targeting pchar (your current character) and modifying them for whatever you need (.garrusify, lowering morale to test despair, etc.)

I did most of my work without the console, so I don't know too much about its capabilities yet. For testing events, I find the easiest way is just to slide the card into the NOOB-DECK within dailydecks.df
RyukaRuki 18 Apr, 2017 @ 8:07pm 
Thanks!
RyukaRuki 20 Apr, 2017 @ 12:11pm 
I'm still stuck... Thanks for the advice, though.
R.I.P 20 Apr, 2017 @ 1:14pm 
Maybe you can check for errors in the console or in log files (Win10):
C:\Users\Name\AppData(hidden folder)\Roaming\.madgarden\DR2C

Is the game crashing, or is the character not appearing?

Unfortunately, I stopped messing with the files because I kept reading about the "Coming Soon" limited mod support, and I was worried that the implementation might break existing mods (Thank You, Harebrained Schemes) or change the file structure.
RyukaRuki 20 Apr, 2017 @ 1:19pm 
Clicking start doesn't do anything. I'm not sure if that counts as it crashing.

I'm wondering the same thing too. Maybe I should just try to be patient...
Rocketcat Games  [developer] 20 Apr, 2017 @ 1:20pm 
Oh, ok I did see this thread before and I forgot. I just made a post in general saying to make a post here, woops.

Put your files up somewhere and I'll take a look at them directly.

RIP: I don't think anything we do would break existing mods too bad, since that would also break all our official files.
RyukaRuki 20 Apr, 2017 @ 1:26pm 
I've posted them here on my Google Drive, but I never use it. I don't know how it'll work.

https://drive.google.com/drive/folders/0B1zFKpcyqbauOVBsWkVQaHdMRDg?usp=sharing

If it doesn't work, let me know and I'll try to fix it.
Rocketcat Games  [developer] 20 Apr, 2017 @ 1:28pm 
Getting something to drink and then taking a look at this
< >
Showing 1-15 of 34 comments
Per page: 1530 50