-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7 from SnowLune/dev
version 1.0.0
- Loading branch information
Showing
17 changed files
with
1,041 additions
and
250 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,3 @@ | ||
practicefieldexpanse.workshop.txt | ||
practicefieldexpanse.*.txt | ||
# ravensaidome.*.txt | ||
ravensaidome.ow.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,76 @@ | ||
# Practice Field: Expanse | ||
Practice Field: Expanse is a sandbox practice game mode for the Overwatch Workshop. | ||
# Raven's AI Dome | ||
|
||
Raven's AI Dome is a sandbox practice game mode for the Overwatch | ||
Workshop. | ||
|
||
## Summary | ||
Up to six players are spread across the map "Workshop Expanse". Each player is put in a bubble against an enemy dummy bot. The player kills the enemy bot and progresses to the next hero in the list when the "Kill Goal" is met. The player can select any hero they would like to practice on. The enemy spawn distances and play area will automatically be adapted to the optimal sizes for the chosen hero. | ||
|
||
For more info, see: [Practice Field: Expanse](https://snowlune.github.io/PracticeFieldExpanse/) | ||
Up to six players are spread across the map "Workshop Expanse". Each player is | ||
put in a bubble against an enemy dummy bot. The player kills the enemy bot and | ||
progresses to the next hero in the list when the "Kill Goal" is met. The player | ||
can select any hero they would like to practice on. The enemy spawn distances | ||
and play area will automatically be adapted to the optimal sizes for the chosen | ||
hero. | ||
|
||
For more info, see: | ||
[Raven's AI Dome](https://snowlune.github.io/RavensAIDome/) | ||
|
||
## Files | ||
`src/` contains all the text files of groups of rules that are compiled into the mode file `practicefieldexpanse.workshop.txt` with Make. | ||
|
||
`src/` contains all the text files of groups of rules that are compiled into the | ||
mode file `ravensaidome.ow.txt` with Make. | ||
|
||
## How to use | ||
A premade release can be downloaded and imported into Overwatch right away. Just open `practicefieldexpanse.workshop.txt` in your favorite editor or notepad. Select All (ctrl-a), then Copy (ctrl-c). | ||
The mode text file will now be in your clipboard. Go to Game Browser >> Create >> Settings. There will be an orange button in the top right that will paste from your clipboard when you click it. | ||
Info: You can also import the code `5DPKQ` in Overwatch to get a recent build. However, sometimes this isn't always up to date with the git version. | ||
|
||
A premade release can be downloaded and imported into Overwatch right away. | ||
|
||
- Open `ravensaidome.ow.txt` in your favorite editor or notepad. | ||
- Select All (**ctrl-a**), then Copy (**ctrl-c**). The mode text file will now | ||
be in your clipboard. | ||
- Go to the Game Browser in _Overwatch_ >> Create >> Settings. There will be an | ||
orange button in the top right that will paste from your clipboard when you | ||
click it. | ||
|
||
**You can also import the code **`BWGAP`** in Overwatch to get a recent build. | ||
However, sometimes this isn't always up to date with the git version.** | ||
|
||
### How to build | ||
I build under WSL2 Ubuntu, but any kind of linux with GNU Make should work. | ||
From the project directory, run `make`. This creates `practicefieldexpanse.workshop.txt` which can be imported as described above. | ||
|
||
I build under WSL2 Ubuntu, but any kind of linux with GNU Make should work. From | ||
the project root directory, run `make`. This creates `ravensaidome.ow.txt` which can be | ||
imported as described above. | ||
|
||
## Additional Information | ||
The mode itself is over 12,000 lines of text and reaching even the new Overwatch Workshop limit of 35,000 objects. | ||
|
||
For this reason, it is __**NOT RECOMMENDED**__ to attempt to open it in the Workshop Editor within Overwatch, as it will almost surely crash your game client as it does mine. I use Visual Studio Code to edit and *highly* recommend it for anyone attempting to make a moderately large Overwatch Workshop mode. In my experience, hand-coding Workshop modes furthers understanding of Workshop actions and syntax. It also allows you to edit and think faster, ultimately creating better code. | ||
The mode itself is over 12,000 lines of text and reaching even the new Overwatch | ||
Workshop limit of 35,000 objects. | ||
|
||
For this reason, it is \***\*NOT RECOMMENDED\*\*** to attempt to open it in the | ||
Workshop Editor within Overwatch, as it will almost surely crash your game | ||
client as it does mine. I use Visual Studio Code to edit and _highly_ recommend | ||
it for anyone attempting to make a moderately large Overwatch Workshop mode. In | ||
my experience, hand-coding Workshop modes furthers understanding of Workshop | ||
actions and syntax. It also allows you to edit and think faster, ultimately | ||
creating better code. | ||
|
||
After a version is ready for release, I import it into a custom game, then recopy it and save *that* as the mode file. This formats the text and eliminates any parenthetical discrepancies, making math bugs easier to identify. | ||
## Development History | ||
I started this project in January 2020 as soon as the "Workshop Expanse" map was released on the PTR. The idea came from my first practice mode on the Practice Range that spawned random types of enemies and gave them *very* rudimentary movement. I knew I wanted something that would spawn enemies at random distances from me and facing a random direction. Initially I only intended it to be a small Widowmaker warm-up and flick practice mode. It is currently in the pre-release stage with changes happening rapidly. | ||
|
||
I started this project in January 2020 as soon as the "Workshop Expanse" map was | ||
released on the PTR. The idea came from my first practice mode on the Practice | ||
Range that spawned random types of enemies and gave them _very_ rudimentary | ||
movement. I knew I wanted something that would spawn enemies at random distances | ||
from me and facing a random direction. Initially I only intended it to be a | ||
small Widowmaker warm-up and flick practice mode. It is currently in the | ||
pre-release stage with changes happening rapidly. | ||
|
||
## Support Me | ||
I've put more hours into this project than I have an any one job most likely. It's been a passion project, but I have put my soul | ||
and *a lot* of time into it. | ||
|
||
I've put more hours into this project than I have an any one job most likely. | ||
It's been a passion project, but I have put my soul and _a lot_ of time into it. | ||
Consider supporting me if you enjoy this project. | ||
|
||
<pre><code>CashApp: $RavenQueenLuna | ||
BTC: 3ApiPv3yjmZKo9T5SGSNTyNQVyPthobBEE | ||
ETH: 0x3e1C67b95Db61f7F444bbDb74Dad8e2a689eA8a4 | ||
DOGE: DEAbvFjBbJb6yyABDjVrmJr8Z3Afi2qwSQ | ||
Email snowluna@protonmail.com for different coin addresses not listed here</code></pre> | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,213 @@ | ||
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@570&display=swap"); | ||
:root { | ||
--extra-dark-teal: hsl(189, 44%, 10%); | ||
--dark-teal: rgb(138, 198, 209); | ||
--light-teal: rgb(190, 235, 233); | ||
--lighter-teal: hsl(177, 53%, 90%); | ||
--dark-pink: rgb(255, 135, 176); | ||
--light-pink: rgb(255, 195, 216); | ||
--light-grey: rgb(230, 230, 230); | ||
} | ||
|
||
* { | ||
margin: 0; | ||
padding: 0; | ||
box-sizing: border-box; | ||
} | ||
|
||
body { | ||
background-color: var(--light-grey); | ||
} | ||
|
||
h1, | ||
h2, | ||
h3, | ||
h4, | ||
h5 { | ||
font-family: "Montserrat", sans-serif; | ||
font-weight: 700; | ||
line-height: 1.3em; | ||
} | ||
|
||
header nav { | ||
height: 80px; | ||
background-color: var(--extra-dark-teal); | ||
} | ||
|
||
header nav ul { | ||
display: flex; | ||
justify-content: space-evenly; | ||
align-items: center; | ||
height: 100%; | ||
} | ||
|
||
header nav ul li a { | ||
text-decoration: none; | ||
padding: 20px; | ||
height: 100%; | ||
} | ||
|
||
header nav ul li { | ||
font-family: "Montserrat", sans-serif; | ||
font-weight: 700; | ||
font-size: 1.2em; | ||
color: var(--dark-teal); | ||
list-style: none; | ||
} | ||
|
||
header nav ul li:first-of-type { | ||
font-size: 1.7em; | ||
font-weight: 900; | ||
color: var(--light-teal); | ||
} | ||
|
||
a, | ||
a:visited, | ||
a:hover, | ||
a:active { | ||
color: inherit; | ||
} | ||
|
||
header nav ul li a:hover { | ||
color: var(--light-teal); | ||
text-decoration: underline; | ||
} | ||
|
||
.main-content { | ||
width: 100%; | ||
max-width: 1024px; | ||
margin: 0 auto; | ||
padding: 0 25px; | ||
} | ||
|
||
.main-content p, | ||
.main-content ul, | ||
footer p, | ||
footer .contact { | ||
font-family: "Montserrat", sans-serif; | ||
font-size: 1em; | ||
font-weight: 200; | ||
text-align: left; | ||
line-height: 1.4em; | ||
} | ||
|
||
.main-content ul { | ||
margin-left: 50px; | ||
} | ||
|
||
.main-content h2, .main-content h3 { | ||
margin-top: 20px; | ||
margin-bottom: 10px; | ||
color: var(--extra-dark-teal); | ||
} | ||
|
||
.about { | ||
display: flex; | ||
align-items: center; | ||
margin-top: 20px; | ||
} | ||
|
||
.about p, | ||
.about h3 { | ||
margin-top: 15px; | ||
} | ||
|
||
#about-text { | ||
margin-left: 20px; | ||
} | ||
|
||
#hero { | ||
width: 400px; | ||
border-radius: 15px; | ||
} | ||
|
||
.donate { | ||
text-align: center; | ||
} | ||
|
||
.donate sup { | ||
font-family: Arial, Helvetica, sans-serif; | ||
font-style: italic; | ||
font-weight: bold; | ||
} | ||
|
||
.donate button { | ||
width: 300px; | ||
height: 60px; | ||
background-color: var(--light-teal); | ||
color: var(--extra-dark-teal); | ||
border: 4px solid; | ||
border-left-color: var(--light-teal); | ||
border-top-color: var(--light-teal); | ||
border-right-color: var(--dark-teal); | ||
border-bottom-color: var(--dark-teal); | ||
border-radius: 10px; | ||
font-family: "Montserrat", sans-serif; | ||
font-size: 1.25em; | ||
font-weight: 700; | ||
} | ||
|
||
.donate button:hover { | ||
background-color: var(--lighter-teal); | ||
border-color: var(--dark-teal); | ||
cursor: pointer; | ||
} | ||
|
||
footer { | ||
background-color: var(--light-pink); | ||
text-align: center; | ||
width: 100%; | ||
padding: 40px 0; | ||
margin-top: 40px; | ||
} | ||
|
||
footer p { | ||
max-width: 1024px; | ||
margin: 0 auto; | ||
text-align: center; | ||
} | ||
|
||
footer .contact { | ||
display: flex; | ||
flex-direction: column; | ||
margin-top: 20px; | ||
text-align: center; | ||
font-size: 20px; | ||
} | ||
|
||
footer .contact li { | ||
padding: 30px; | ||
} | ||
|
||
.cheeky { | ||
font-style: italic; | ||
} | ||
|
||
.mode-name { | ||
font-weight: bold; | ||
font-style: italic; | ||
} | ||
|
||
.hero-name { | ||
font-style: italic; | ||
} | ||
|
||
.battletag { | ||
background-color: var(--dark-pink); | ||
padding: 15px; | ||
} | ||
|
||
@media screen and (max-width: 800px) { | ||
header nav { | ||
height: 50px; | ||
} | ||
|
||
#hero { | ||
width: 80%; | ||
} | ||
.about { | ||
flex-direction: column; | ||
} | ||
} | ||
|
||
/* @media only screen and (max-width: ) */ |
File renamed without changes
Oops, something went wrong.