Tumgik
#the amount of times I stopped building to recolor an object for this build....
omgkayplays · 4 months
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
412 notes · View notes
12raben · 4 years
Text
Summer Rotation
I know, compared to the spring rotation, I rushed through this one. The reason is simple: I am at the moment not allowed to go to work. My boyfriend however is a male nurse and is at work non stop. I try to support him, but there’s only so much I can do. Cooking meals, he can eat at work, keeping our home clean, so he doesn’t have to do chores after a 12 hour shift, making him as comfortable as I can, while he’s home. My family doesn’t live in the same city as I and I really miss my sisters. I’m pretty much alone all of the time. Which sounds sad and terrible, but I call friends and family frequently, so I don’t feel really lonely. The rest of my time, which is much(!) I can invest however I want. It’s somewhat luxurious to have so much free time on my hands. :/ But enough doom and gloom, let’s talk about, what the title says:
(I digressed again! How unusual for my posts...! I hid the rest of the post, so I’m not blocking your dash with a wall of text.)
The summer rotation of Twinhills was eventful enough. And there are some things, I’ll adjust. First: The fees for Veerukka, the midwife. I came to the conclusion, that I have to get a system in there, because I was lost. I tried diffrent methods. First I summoned her via All-In-One-NPC and used the payment option of that object. The payment varies depending on how long the “NPC” stays on the lot. It’s around 285$, I think(?). This is too much for peasants, but not enough for nobles. Next try: I summond her via All-In-One-NPC and gave her money per tips, which didn’t work at all >:/ also the alternative of giving her goods (like crops) doesn’t work. Summoning her via All-In-One-NPC also has the downside, that she won’t be reacting to the birth and I have to be aware, that a sim is going to give birth soon. I’m a potatoe sometimes and I forget, that my sims are pregnant... Shame on me. I decided to go through this oldschool: Summoning her with a teleporter, make her selectable, make her work, pay her (eighter putting crops in her inventory or coins) after the birth, make her unselectable and say goodbye. These are the new fees (goods mean whatever the family produces/have in their inventory):
++Midwife Fees++ Outcasts: 10$ or 3 goods Peasants: 50 or 5 goods Yeomanry: 100 or 5 goods Merchants: 250 or 6 goods Gentry: 400 or 8 goods Nobility: 500 or 10 goods Royal: Voluntary "Donations"
Ulfur Henner elevated himself to Yeomanry! So he paid 15.000$ to the crown, which is a big chunk. Nice. Twinhills unlocked the Church of Praios.
Tumblr media
Now there are 1.585$ left in the treasury. I tried to build the chantry of Denerim, but it doesn’t realy look like it. :/ At least it doesn’t look like a stereotypical christian church (which I wanted to avoid).
What comes next? The only community lot Twinhills has to unlock for the next level now, is the cemetery. It costs 16.868$, so maybe I can unlock it, if another family raises a social level. Which brings me to another problem: If all peasants get rich with their shops, I have no peasants. :p I should restrict myself using the money perks. Or make a tax for it. (On the other hand moving sims up brings so much tax money..!) NPC/Marriageable Sims/Townies or whatever you would like to call it, are desperately needed in Twinhills. I love my sims, but I would like to see some new faces. On that note: I will add one household per season at max. That will bring a little variety in the ages (so not all children grow up at the same point in time), I have a little time to figure out a playstyle for the NPC households and to getting to know the new inhabitants.
Speaking of getting to know sims: It makes me really sad, that Bjorn and Harry died. I had plans for them...! When Ulfur and Belsinde showed real interest in each other not just a fling, I thought Bjorn could move into the chicken farm and take over business (Ulfur is Bjorn’s uncle). And Harry could be heir of the Hlothran’s house and fish all day like he wanted to. (Maybe marry Kiara Mograld and have beautiful redhead children... *sigh*) And let’s not forget the lady of the realm. Una was content. She kept the home clean, when there was no maid, she took great pleasure in cooking and homeschooled her children. I wish, I had more time to get to know her, because I can’t tell you more about Una other than that she was relaxing to play with.
Tumblr media
On the bright side: There have been sims born as well. The Buckholtz have a spare and a heir all in one: Viggu Buckholtz & Wullf Buckholtz
Tumblr media
The Hlothrans have another daughter: Ylvie Hlothran.
Tumblr media
The Brodheimer family was blessed with a son: Hannes Brodheimer.
Tumblr media
I have already wrote about my idea, that heirs are selected according to the family’s religion. For now I’m handling it that way: If there is a son born, he’s the heir. No questions asked. If however, there is no son (because all of them died, the parents didn’t have a son, etc.) a daughter can be heir to the family business. E.g. the Sunflower Inn belongs to Zacharias, but since he has only daughters (and I doubt, that he will have any more children), Primrose will be heir. On the other hand we have the Hlothrans. I have more than one time expressed my determination to marry off Hesel and Madleine (this is going to happen. No. Matter. What. I have spent to too much energy on this to not make it happen.) So, eighter Galina, Molly or Ylvie could be heir. To be quite honest: I would love to make Ylvie the heir, because of her “splendiferous” character.
On the note of heirs: Other children of a household will have to move out, once a heir has taken over. With the no20khandout mod and my sims being as poor as dirt, they will be probably need apartments sooner or later. I use pescado’s apthack, which charges money for furniture, so my sims won’t get rich by simply moving from one apartment to another. I also used Nysha’s rent controller, so I can adjust the rent to my liking. But since all my community lots have to be paid by eighter a sim or the crown, I should also charge the crown for apartments, right? I decided not to do that, but have a “free” apartment per 2 unlocked community lots. E.g. In Twinhills are 6 unlocked communits lots, so I can use 3 diffrent apartments. My next thought circled around the rent, that just poofs into nothingness. If the sims pay rent it has to go to the crown or a sim, who owns the land. But how can I keep track of this? There is the lot income rights mod by simlogical. I could write down, how much each houshold pays or I could add a set amount for each occupied apartment. Phew, that seems a lot of work... I’ll instead make my live easier. The MCC suggests to use a dice for landowning families (roll (d9) x $5000) and I’ll do just that for apartments, but with lowered income. So I’ll roll (d4)x(highest rent) per season. (E.g. the rent of an apartment is 200$~500$, I’ll roll (d4)x500.) Regardless on how many units are actually occupied. Does it make sense? Not really. But I like the random aspect. So, if the apartment is “just” unlocked and occuppied, the crown (aka my tax-sim) gets the money, if another sim has bought the apartment, the sim will earn the money. How can a sim buy an apartment? They can’t. It’s play and pretend in my case. I have recolored Medieval Investment Certificates by Xia to represent apartments in my game, because I’m bad with keeping track. So, if a sim hangs one of these certificates on his wall, he gets the income of that apartment.
I realized just now, how long this post got. Sorry for digressing, but writing this down, explaining, what I’m doing, really helps me think this through.
And boy, I am very grateful, that so many people out there are following my blog. I really appreciate each and every comment and like. I’m just really bad at expressing my gratitude or making follower gifts. So sorry for that, but thanks. Man, I’m blushing, while writing this. I’m really bad at expressing my feelings. I should stop right now.
Happy SImming!
15 notes · View notes
tinydevblog · 5 years
Text
Recoloring assets at runtime in elf game
(crossposted from https://paranoodle.itch.io/elf-game/devlog/75412/recoloring-assets-at-runtime-in-elf-game )
intro
first disclaimer: this is just how i decided to do things and i've been using godot for barely a month so there's likely things that could be done better, but it does work. that said if you have suggestions on how to improve feel free to let me know!
when i was trying to decide on ways to handle color choices in the character creator, two implementation options were covered in example/guides and the such:
have every asset image available in every color
have every asset image available once in white, and use modulate/multiply to add color programmatically
the issues with (1) should be pretty obvious: not only do you have to recolor everything manually, but you have to have as many files for each asset as you have colors, so it scales incredibly badly both time-wise (your time) and storage-wise (you need to have all the files included with the game).
(2) already sounds more reasonable, since it scales well both time-wise and storage-wise, but the way modulate works means that you only use one color to modulate with, instead of having control over every swatch in the image. that's not inherently a bad thing, but i personally like having control over all the colors in an image (doubly so for pixel art). see below for the difference between column 1 (manual palettes) and 2-3 (modulate with different color bases).
Tumblr media
so, in comes option 3, which i ended up coding from scratch and is what i decided to implement in this game: have every asset image available once in a pre-determined palette, and use shaders to palette-swap at runtime. it scales as well as (2) because i only need one image per asset, and while setting up the palettes takes a little longer, it's work that only has to be done once and then never needs touching again.
in theory it'd be possible to set up the list of palettes as just using Color objects or hex codes, but i find it a lot more intuitive to make/edit the palette file in an image editor, so i went and coded a script that can read the palette file i give it and translate to Color objects as needed.
so, in practice, on top of the standard asset files, i end up with two other files:
a "reference" file that lists all the colors from the asset files i want to edit (from left to right: hair color, skin color, marking color, eye colors)
Tumblr media
a "palette" file that lists all the palettes i want to make available (truncated preview, from left to right: hair colors, skin colors, eye colors)
Tumblr media
(note: you can also make one file for each type of palette you want, i just wanted to keep everything in one place because otherwise i get easily confused. it's very slightly simpler code if you have one file for hair colors, one for skin colors, etc)
and using those, i need to code two things: some manner of ui so people can select palettes, and the shaders to actually apply said selection.
palette selection node
the palette selection is reasonably simple to set up, we just need to:
decide what columns in the palette file we're reading from, and which one specifically to display as the selectable swatch
read through all the lines in the palette file, and for each of them, build an array of Color objects corresponding to the palette
fill our grid node with a bunch of buttons that link a swatch to a whole palette
in practice, here's a runthrough of the code for the palette selection node (implemented as a GridContainer, using markings as an example):
Tumblr media
3: used to keep track of which part of the character i'm recoloring, edited via the node options 5: signal sent when we click on a swatch, containing the palette info linked to that swatch 7: list of all the swatch buttons in the palette grid 9-11: textures for the buttons (light/dark versions on press to prevent from blending in with the swatch/background) 13: ButtonGroup is necessary to handle toggle functionality on the swatch buttons (we only want one of them selected at any given time) 14: used to prevent sending the recolor signal again if we click on the same button twice in a row
Tumblr media
17-18: loads the palette file and locks it so we can read pixel data 21-27: reads the pixels from the palette file and stores them into an array. line 22 stops the loop if we reach a line of transparent pixels (no more colors to read!) and line 25 blends a 50/50 mix of two of the pixels programmatically because it's easier than blending it myself in aseprite 29-34: creates the actual swatch buttons, sets the appropriate light/dark texture, and sets its modulate to the first color in the palette 36-37: adds the button to the grid and links its "pressed" signal to a function later in the file 39-41: "clicks" on the first swatch so we don't get any weird behavior with not having any of the swatches toggled when the menu opens 42: locking the palette file again since we're done using it
Tumblr media
as mentioned in line 37 above, this sends a signal with the key defined in line 3 and the palette linked to the swatch that was clicked, but ignores any clicking on the currently selected button
coding the shader
in theory the shader is reasonably simple, since essentially all we need is "here's a file with the target colors, here's another with the new colors" and let it do the replacing, but in practice it's not quite trivial to write, especially for someone like me who's new to shader coding.
Tumblr media
in the editor for the parameters, old_palette and new_palette are both the reference file listed earlier (imported as a texture), and palette_size is the width of the reference file. there isn't a ton to comment past that. for every color in the palette, we replace the old one in the image with the new one, keeping opacity intact.
tying everything together
with the shader and buttons coded, all that's left is something to tie the signal to the shader, and it's this little snippet of code here:
Tumblr media
3-4: offsets (with names matching the key variable all the way back up in palette selection) so we know what part of the reference to replace with what colors 5: reference file from earlier, but with a different name because we're importing it as an image. this has to do with how godot reads image/texture data differently 10-12: replace all the pixels in the reference image that correspond to the channel we want to modify 14-16: create a new texture from this reference image  (shaders can only take textures as input, not images) and apply it to our material
on line 16, the set_palette method is just a wrapper for get_material().set_shader_param("new_palette", palette)
make sure you make a ShaderMaterial object and assign it to the part you want recolored, and then assign your shader script to it, as well as linking the recolor signal from the palette selection to wherever you want the above code to run.
result, with a couple more bells and whistles:
Tumblr media
and that covers most of how the recoloring works! actually changing the image for each option is as simple as having it load a different texture, since the material stays unchanged. the way recoloring works for markings is a tiny bit more complicated as it uses what amounts to improvised masking mixed with the recoloring. i won't be sharing the code for it here since it's a bit more finicky and needs refactoring at the moment. the cool thing with this shader is it means i can also use it with all the npcs in the game, reusing any relevant assets without needing a full-on unique colored copy of their portraits/sprites
i hope this makes sense and explains things to anyone interested! feel free to throw questions at me over any of the implementation :>
7 notes · View notes
jorlith · 5 years
Text
I’ve made some updates to my fanmade Overwatch Hero.
Hero Number: ?? 
Hero Name: Phoenix
Hero Role: Damage
Hero Health: 250 
Real Name: Kekoa Havika
Nationality: Hawaiian
Occupation: Scientist(Formerly), Researcher(Formerly), Vigilante
Gender: Male
Age: 36 
Base: Kahoolawe, Hawaii (Formerly). Watchpoint: Gibraltar (Formerly). 
Affiliation: Hawaiian Preservation Research Station (Formerly). Nature Restoration Program (Formerly). Overwatch (Formerly).
Relations: Unnamed Family (Deceased). 
Weapon: Flamethrower, named Phoenix Breath, that has two special tanks on Phoenix’s back. Primary muzzle is held in right hand, top of tanks resembles canons. Two exhausts that are shaped like feathered wings stick out of the middle of the tanks. When used too much, overheats and needs to cool down before it can be used again. (The overheat and cooldown is the reload.) 
Abilities: 
Primary Fire:
Name: Phoenix Breath
Type: Beam, fires a beam of flames.
Damage: 40 damage per second. Enemies caught in it receive an additional burn damage of 50 over a period of five seconds. Burn damage does not stack, if an enemy exits and re-enters the beam they do not get “reburned” unless the burn effect already wore off.
Projectile Speed: 20 meters per second.
Max range: 10 Meters
Ammo: 150
Ammo usage: 15 rounds per second.
Reload Speed: 1.5 Seconds
 Secondary Fire:  
Name: Phoenix Breath
Type: Beam. Fires a focused beam of flames, hit scan is smaller and more focused. Phoenix’s movements are heavily slowed while using this attack.
Damage: Instantly deals 120 damage, as well as burning the enemy hit by it. Phoenix’s burn damage deals 50 damage over 5 seconds.
Projectile Speed: 60 meters per second.
Max range: 10 Meters
Rate of fire: 1 shot per 1 second.
Ammo: 150
Ammo usage: 150 per shot.
Reload time: 1.5 seconds.
Casting time: 0.5 seconds.
 First Ability:
Name: Flare
Casting time: 2 seconds.
Damage: 30-60, deals burn damage of 50 damage over five seconds.
Area of Affect: 5 meter radius.
Duration: 5 Seconds.
Cooldown: 10 Seconds.
Details: Phoenix exclaims “Here, hold this” when using. Phoenix throws cone like object, that doesn’t activate until it lands on the ground or an object. Once activated, the cone launches two meters in the air and produces a cone of flames that covers a 5 meter radius. Enemies hit by it receive 30-60 damage depending on how long they remain in the flame. Enemies damaged by Flare receive an additional burn damage of 50 damage over 5 seconds.  
 Second Ability:
Name: Burst
Casting time: 2 Seconds.
Damage: Knockback.
Area of affect: 7 meter radius.  
Max Range: 2 Meters Vertically.
Cooldown: 8 Seconds.
Details: Phoenix exclaims “Back off!” when using. Steam builds up within the large tanks on Phoenix’s back, releasing a burst of pressure from the exhausts. Enemies within a 7 meter radius of Phoenix are knocked back, and Phoenix is launched, at the most, 2 meters vertically into the air.
 Passive Ability:
Name: Phoenix Wing
Details: By releasing small amounts of fire from the exhausts, Phoenix is able to maneuver in the air. While in the air, pressing jump will cause Phoenix to launch himself vertically, working as a second jump. The second jump does not reset until Phoenix has touched the ground again. Holding the jump button while airborne will cause Phoenix’s decent to be slowed, letting go of the jump button cancels this ability.
 Ultimate Ability:
Name: Purge
Type: Linear, Area of Affect, Beam??
Damage: 300 damage per second, burn damage of 50 damage over 5 seconds.
Max Range: 15 Meters.
Area of effect: 7 meter radius.
Casting time: 1.5 Seconds
Duration: 3.5 Seconds
Charge Required: 1500
Details: Teammates hear Phoenix say “Rise from the ashes!” Enemies hear Phoenix say “Ka nalu o ke ahi!” Phoenix anchors his flamethrower, bracing him in place. The tanks on his back move over his shoulders, releasing a wave of fire straight in front of him. The fire travels up to 15 meters in the direction he is facing and covers a 7 meter radius. While using, Phoenix is immobilized, making him vulnerable against aerial attacks and attacks from behind. Useful for area control, or to protect your team if caught in a Zarya’s Graviton Surge. Phoenix’s Purge instantly cancels out, and is cancelled out, by Mei’s blizzard. The Ultimates will instantly end upon meeting, so if there is a second left in Mei’s blizzard and your Purge touches it, both Ultimates end, wasting yours and vice versa. Phoenix passively generates 1% Ult Charge every 3 seconds.  
 A character can get rid of burn by picking up a health pack, healing by support heroes does not remove the burn.
 Skins: 
Classic: Phoenix wears a gas mask over his nose and mouth, the mask is shaped like a beak. Wears armor over a long sleeved shirt, the armor to support the weight of his flamethrower, the sleeved shirt to protect him against heat. A large, armored glove is worn on his right hand, so he can hold his weapon when it overheats. Armored leggings and boots to also help him support the weight of his weapon. His armor and clothes are a faded red and orange, representing fire as well as a Phoenix. 
Rare Skins: 
Ash: Armor and clothes are white. 
Smoke: Armor and clothes are a mixture of silvers and greys. 
Smolder: Black with a red glow. 
Sulfur: Different shades of blue. 
Legendary Skins: 
Cadet Havika: Phoenix is wearing a classic Overwatch uniform/armor, his face is fully visible. 
Secret Agent: Recolor of Cadet Havika, with darker colors. 
Epic Skins: 
Phoenix: Phoenix is wearing a headdress that represents the mythological bird, his mouth and nosed are uncovered with this skin. Multiple feathers run down from the headdress, covering his body in feathers. Has gauntlets and armored boots that represent bird talons. Skin is colored mostly with reds and some oranges and yellows. 
Sun God: Recolor of Phoenix skin that is colored with mostly yellow and has some oranges and reds. Orange suns are drawn on random locations of the armor. 
Fire Dancer: Phoenix is wearing a grass skirt over a tunic, as well as grass like boots and bracelets. A bandanna that appears to be made of grass rests on his head, as well as a necklace of grass around his neck. Grass is dark green in color, tunic is gold. The exhausts on Phoenix Breath look like ceremonial fire dancing staffs instead of wings. 
Uluao: Recolor of Fire dancer, grass is brownish is color, tunic is white with black spots. 
Emotes:
Heroic: Phoenix pulls left arm toward his body, and raises up his flamethrower. 
Exhausted: Phoenix lays down on his back, sprawling out. 
Really?: Phoenix extends left hand forward, looks to his left, confused. Phoenix then looks forward again, extending his hand further. ‘
Research: Phoenix takes out notepad and begins writing in it, before putting it back. 
Technique: Phoenix spins in a circle, making a circle of flames, he then jumps and spins in the air, making a vertical wheel of fire. 
Unbelievable: Phoenix puts his right hand to his forehead and wraps his left arm around his chest. Phoenix then shakes his head and snickers. 
Voice Lines:
Really?
Everything Burns
From the Ash (Mai ka     lehu)
I will get it     done. 
It’s just research
Light it up!
Move (Ne’e)
Play with fire… you’ll     get burned
Relax (Ho’omaha) 
Sounds Good (Maika’i     loa)
 Victory Poses: 
Heroic: Stands with his flamethrower ready. 
Research: Sits crossed legged, reading over notes. 
Purge: Stands with his flamethrower’s canons aimed forward, anchored in the ground. 
Family: Standing to his side, holding a holo-photo of him, his parents and his brother. 
Highlight Intros: 
Heroic: Pulls left arm toward his body, raises his flamethrower up. 
Reason: Looks at picture of family, before putting it away, pulling flamethrower to the ready. 
Burn: Lands on ground from air, anchors into place and activates Purge. 
Phoenix: Uses his exhaust wings to slowly fly toward the ground, aiming his flamethrower at the camera. 
Sprays:
1.       Pixel: Unlocked by earning the “Into the Frying Pan” Achievement/Trophy.
2.       Cute: Unlocked by earning the “Warm Things Up” Achievement/Trophy.
3.       Lei: Circle of flowers or an Hawaiian Lei.
4.       Research: Single page of research notes.
5.       Amazed: Young Kekoa, sitting in front of a television screen, wonder on his face.
6.       Flame: A single flame.
7.       Birds: A group of colorful birds.
8.       Phoenix Breath: Spray is Phoenix’s weapon.
9.       Intense: Focus of Phoenix’s head/torso, with him staring forward.
10.   Hero: Outline spray of Phoenix is overwatch gear.
11.   Family: Picture of Phoenix’s family.
12.   Flare: Cartoonish drawing of Phoenix’s flare.
13.   Exhaust: Phoenix’s “wings” releasing pressure.
14.   Clearing: Detailed Spray of Phoenix spraying fire.
15.   Phoenix: Bird made of flame.
16.   Experimenting: Phoenix wearing goggles, using a blow torch.
17.   Purge: Phoenix’s Phoenix Breath in its Purge state.
18.   Volcano: A volcano with magma spilling out of it.
19.   Ash: A pile of ash with a soft glow in the middle.
20.   Really?: Phoenix with his hand extended, a confused expression on his face.
21.   Not a Morning Person: Phoenix is laying in a bed, sprawled out and asleep.
22.   Declaration: A Poster of Doomfist, that is half burnt, and still burning.
23.   Inspiration: A signed picture of Mei, Mercy and Winston.
24.   Reason: Three gravestones.
25.   Fire Staff: A burning staff used by fire dancers
Character Interactions:
1.       Mei: “I Heard about what Talon did, I’m sorry about what happened to your family.” Phoenix: “I heard about Antarctica, I’m sorry about what happened to yours.”
2.       Mei: “Revenge won’t bring your family back.” Phoenix: “It’ll stop Doomfist from doing it to anyone else!”
3.       Phoenix: “It is an honor to work beside someone I looked up to my whole life.” Mei: “You can honor me by ending this path of death and revenge, and return to Overwatch.”
4.       Winston: “You used to be so happy and carefree, I can’t accept what you’ve become.” Phoenix: “I’ve become a martyr to my beliefs.”
5.       Phoenix: “It may be too late for me, but you are not beyond redemption.” Hanzo: “You know nothing!”
6.       Genji: “You should meet with my master, he helped me find peace.” Phoenix: “There is no peace, only fire.”
7.       Reaper: “You do realize that I killed your family.” Phoenix: “Doomfist killed my family, you are nothing more than a puppet on strings.”
8.       Doomfist: “We both believe in being reborn through destruction, we should be working together, not against each other.” Phoenix: “What I believe is natural, what you believe is evil.”
9.       Phoenix: “You better watch your back!” Doomfist: “I accept the challenge.”
When Phoenix gets discorded he says: “Kuamuamu!”  
When Zenyatta discords Phoenix he says: “You are consumed by your own fire.”
When resurrected by Mercy Phoenix says: “From the ash!”
When respawning Phoenix says: “Phoenix rebirth.”
When selected during a game or when some changes to Phoenix, he says: “Let’s burn them down!” or “Phoenix, flying in.”
When Phoenix eliminates Mei, he says: “It should’ve never come to this.”
When Mei eliminates Phoenix, she says: “Maybe you’ll be reborn happier.”
When Phoenix cancels a Blizzard with Purge he says: “Let’s heat things up!”
When Mei cancels a Purge with Blizzard she says: “You need to chill out!”
When Phoenix eliminates Doomfist he says: “That, was for my family.”
When Doomfist eliminates Phoenix he says: “You were never a real threat.”
When Reaper eliminates Phoenix he says: “Join your family.”
When Phoenix is Nano Boosted he exclaims: “I can feel the fire burn!”
When Phoenix gets hacked he says: “Don’t play with fire!”
When there’s a turret Phoenix will say: “An enemy turret blocks our progress.”
When Phoenix destroys a turret he’ll say: “The turret has burned to ash.”
When an enemy Mercy resurrects an enemy player Phoenix will say: “They’ve been reborn from their ashes.”
When on the Payload Phoenix says: “Payload, ready for transport.”
When capturing a point Phoenix says: “Heating up the point.”
When the payload is being contested Phoenix says: “We need to get that Payload moved!”
When enemies are capturing the point Phoenix exclaims: “They’re on our point, let’s burn them down!”
When time is running out on offense on an escort map Phoenix says: “Our time seems to be coming to a close, we must act now!”
When time is running out on defense Phoenix says: “This Victory will make excellent data.”
When time is running out of offense Phoenix says: “We’re not here to lose, move!”
When Phoenix gets burned by an enemy Phoenix or Ashe he says: “So that’s what that feels like.”
When Phoenix is getting damage boosted by Mercy he says: “Let’s get this fire started!”
Ways Phoenix says hello: either “aloha” or “hey there” 
Ways Phoenix says Thank you: “Appreciated” or “Mahalo!”
Ways Phoenix says understood: either “I get you” or “Ua lohe wai ia’oe” 
When on fire Phoenix says: “I’m on fire… well, they are!”
When asks for healing says: “Medic!” or “Some healing would be appreciated!”
Ultimate Status: When under 90% Phoenix says “My Ultimate is charging” or “Purge charging”. When at 90%-99% Phoenix says “My Ultimate is almost ready” or “Purge almost ready”. When fully charge Phoenix says “My Ultimate is ready” or “Ready to burn them all!”
When saying to group up Phoenix says: “Everyone gather here” or “We need to form together!”
Map Interactions: 
Volskaya Industries: “Good thing I brought some heat.”
Eichenwalde: “This place is a great example of withstanding what should destroy you.” 
Oasis: “I’ve always wanted to come here.” 
Watchpoint Gibraltar: “I wonder if Overwatch would ever accept what I’ve become.” 
Achievements/Trophies:
Into the Frying Pan: Use Burst to knock an enemy into your Flare.
Warm Things Up: Use Purge to cancel out two Blizzard’s in a single game.
Character Lore:
Kekoa Havika grew up in a family of researches, growing up he was fascinated by the way some natural disasters, like forest fires, created new life. Kekoa spent a good amount of time studying rebirth through destruction, but only believed it should be allowed if natural. Kekoa had a great mind, and was good with technology. He had an energetic and carefree personality and joined Overwatch when he was in his twenties. He trained underneath Lena and Genji, while he looked up to researches like Mei, Angela, Winston, Moira and others. Kekoa had a great admiration for Mei and the Ecopoint crew, hoping to one day do research at Ecopoint. When Overwatch was disbanded, Kekoa went back to live with his family. The government was having his family research something that could benefit the unity between the omnics and humans. Talon had managed to gain Kekoa’s home address, and sent their agent Reaper to kill the researchers and steal the research. Reaper had happily taken the job as Overwatch Hero code name Phoenix was on his personal hit list. Kekoa was away from his lab doing personal research when Reaper arrived. Kekoa returned home to find his parents and younger brother murdered, all their research either stolen or destroyed. Upon watching the security footage Kekoa learned who was responsible for the death of his family. Kekoa vowed to destroy Talon and stop anyone from doing what Talon had done. 
Character Introduction: 
Phoenix: “Crime has risen, which shouldn’t be a surprise, given what they did to Overwatch. They disbanded our family, and yet they wonder how organizations like Talon grew to be so powerful. Of course evil people will take advantage of a world that lost its heroes! Which leaves a question, the people in charge of the world, how many of them can truly be trusted? I will kill Doomfist myself, and go after anyone who wants to do wrong to the world. I will make sure that what happened to my family will never happen to anyone else ever again! Talon thought they snuffed the Havika flame, well, didn’t they know, a Phoenix rises from the ashes!
Animated Short/Introduction:
Name: Reason
The story opens on the streets of a city, there are few lights as night had fallen. A group of Talon agents where running in fear, panting loudly as the ran as fast as they could. As the Talon agents came around a corner they say a large burst of flames erupt from down the street, engulfing the street. One of the Talon agents skidded to a stop before turning around, running down an alley. The sound someone flying overhead could be heard. A small cone landed at the end of the alley, shooting upwards and creating a cone of flames. The Talon agent stops and starts to turn around, Phoenix lands behind him no.
Talon Agent: “No, please,” Phoenix walks up to the agents and hits him with his flamethrower, knocking the agent to the ground. Phoenix uses his foot to press the agent against the wall, aiming his flamethrower at the Talon agent. The Talon agents mask had fallen off, the fear on his face fully visibly. Phoenix hesitates as he sees the Talon agent and his mind wanders to the past.
“Kekoa!” A woman called, walking around a research station.  It was a bright and sunny day, the sounds of the tropical island echoed in through the open windows. “Kekoa, wake up!”  
“Good luck with that mom,” a younger man who looked to be in his mid-twenties said, “Kekoa was up all night reading the research papers of Mei-Ling Zhou, and watching videos about Overwatch.”
“Go wake your brother up,” an older man said, he was typing while looking over some research notes.
“Yeah, yeah,” Phoenix’s brother sighed before he walked up some stares. Phoenix was younger and wearing a t-shirt and shorts. He was sprawled out in his bed, various research notes scatted on the desk beside his bed. Phoenix’s brother smiled as he jumped, slamming his elbow into Phoenix.
“Ow! What the?” Phoenix exclaimed as he shot up.
“Come on Kekoa, wake up,” Phoenix’s brother said as he started playfully pushing Phoenix.
“I am awake,” Phoenix laughed as he batted at his brother.
“I don’t believe you,” Phoenix’s brother laughed as he hit him again, “come on, mom’s been calling you.”
“All right, I’ll be down,” Phoenix yawned as he sat up.
“Don’t go back to sleep either,” Phoenix’s brother said as he left. Phoenix slowly got up and walked down to meet his family.
“Look who’s finally up,” Phoenix’s mom laughed, “good morning Kekoa.”
“Yeah, whatever,” Kekoa yawned.
“You got some mail today,” Phoenix’s mom laughed, “from some place called Watchpoint: Gibraltar.”
“What!?” Phoenix exclaimed as he sprinted toward his mom, who was holding a letter. “From Overwatch?”
“Yep,” Phoenix’s mom smiled, Phoenix opened it and pulled out a letter. Phoenix looked over it as everyone watched him.
“I don’t believe it,” Phoenix said, disbelief on his face.
“Aw, what’s wrong Kekoa, they turn you down? They charging you for harassment?” Phoenix’s brother laughed.
“No,” Phoenix smiled as he pulled a round object from the envelope, “they accepted me. I’m going to be part of Overwatch!”
“Congrats!” Phoenix’s mom said as joy filled the faces of all of his family members. Phoenix’s brother walked up to him, and nudged him with his elbow.
“So you might finally meet that Mei scientist you got a crush on?” Phoenix’s brother teased.
“I do not,” Phoenix laughed, “but I am excited, to meet her, and Winston, and all the others. Plus this means big things for the Havika family research!”
“It sure does,” Phoenix’s dad said as he stood up, “you’ll always have your family to call back on.”
“Right,” Phoenix nodded. The world seemed to change as Tracer was walking Phoenix through a base. Phoenix was looking around, amazement on his face.
“No I’m only here for a little while,” a voice called from the back of the room, “yes, Genji has been making great progress. I’m happy to see it, how’s it been in Antarctica Mei?”
“Mei!” Phoenix exclaimed happily as he pushed away from Tracer and ran up to the computer, “it is, you’re Mei! I’ve read all of your research papers!”
“Uh, thank you, who are you?” Mei asked.
“I don’t know who this is either,” Mercy said toward Mei.
“Ohmygosh!” Phoenix gasped in one, quick breath, “you’re Dr. Ziegler!”
“Sorry luvs,” Tracer laughed as she joined them, “this is Overwatch’s newest recruit, Kekoa Havika. He’s huge into research.”
“Mei, we need to exchange notes some time!” Phoenix exclaimed happily.
“Sure,” Mei smiled, “just ask Winston for my contact information, we can keep in touch.”
“Best day ever!” Phoenix exclaimed as Tracer pulled him away.
“Morrison just hasn’t been the same since Rialto,” Winston’s voice called from the room they were walking to.
“Well, can’t say I blame him,” McCree’s voice added. Tracer opened the door and she and Phoenix walked into the room.
“Aw, glad you made it, Jesse, this is our newest recruit, Kekoa Havika,” Winston said.
“Howdy,” McCree nodded.
“It’s Winston!” Phoenix exclaimed, stars in his eyes.
“Kekoa is a genius researcher, and he is quite talented with fire,” Winston said.
“That so?” McCree said as he walked past, “try not to burn the place down kid.” McCree said as he put a hand on Phoenix’s shoulder. The world returned to Phoenix aiming his flamethrower at the Talon agent. Phoenix lowered his weapon and picked the Talon agent up by his collar.
Phoenix: “Tell Doomfist, that Phoenix is coming for him.”
Phoenix let the Talon agent go and he sprinted away from the area. Phoenix walked for a while, eventually reaching a graveyard.
Phoenix: “I got your message Winston, and I agree, some one needs to do something. I can’t come back to Overwatch, I can’t do things they way they do.”
Phoenix pulled his badge out and placed it on a grave, he then turned around and walked away.
12 notes · View notes