Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Vapourware Zodiac Legion - X-COM and dungeons

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
https://www.zodiac-legion.com





Hi Codexers,
As I have posted a few questions already, I thought I could as well announce my game Zodiac Legion :
It will be a tactical RPG, with a strategic layer (like in Jagged Alliance or X-Com).

Edit:
The Steam description is more accurate than the old codex one, so here it is:

Zodiac Legion is a turn-based tactical RPG that puts you in command of an arcane chivalric order in a world of reawakening magic. Develop your stronghold, research astral powers, and lead your champions in combat against a fiendish, deathless threat.

As the Grandmaster of the Zodiac Order, it will be your duty to restore this knightly brotherhood and rally its champions under the banners of the thirteen Zodiac signs. You will manage your domain, take important diplomatic decisions and train your warriors in the arcane arts. Enemy armies will invade your borders, forcing you to dispatch your knights on missions resolved through turn-based, tactical battles. Their superhuman powers will tip the scales in the face of overwhelming odds, but beware: many will not survive the ordeal. Yet exploring the secrets of necromancy may reveal that a Zodiac Knight's duty need not end in death.



Both strategic and tactical layers are turn based.


Tactical map :
WoyPmEv.gif

I4Q5aJU.gif




Each character has 1 move and 1 attack action each turn.
XP are awarded on a mission basis, depending on the mission difficulty (and not on the kill count).
The maps are currently hand made, but we are moving to an hybrid approach like in X-COM, with maps being made of preset rooms assembled together.

Depending on the relation with the faction which control the battlefield location, reinforcements may be available for one side.
Depending on the mission, you will be able to bring 6 to 12 chracters.
Each map is a single encounter, so they are designed to feature continuous tense combat, and have a size similar to X-COM maps (instead of being separate chained encounters).

m9uU0Kw.jpg



We want the battles to have a casualty count similar to OG X-COM, where throwing rookies at a problem was always a sensible course of action, rather than the new iteration, so even though characters will get stronger as they level up, most of their strength will come from being attuned to one of the Zodiac signs. Each sign can only have one master and one disciple, who will get replaced on death. Think of it as X-COM ranks, but that would give much stronger benefits, and would be gated by research and facilities.


Strategic map :
Research, stronghold and roster management are implemented, but we still have to add geoscape turn processing.
There will be two types of party actions:
  • Operations, that mobilize a party for several months. These will generate mission opportunities for both sides to either interrupt them, or advance them. There are two types of operations: military, and party based (exploration, spying, research...).
  • Raids are instant missions, either targeting a facility(a dungeon to explore, or an opponent liaboratory to raid for instance), an enemy operation, or one of your ongoing operation.

Both types of operations have a "completion level", that gets filled as the assigned party passes its skill checks at the end of a month.

Military campaigns require "army resources", and are rolled against the enemy defenses and commander. If the advancement of a military campaign reaches 0, the attacking army is defeated and the campaign is over. Military campaigns typically involve army attrition both for the attacker and the defender.

Missions are generated at the beginning of each month. Operations will regularly create mission opportunities for both sides, either to advance it, or hamper the mission (and kill some/all operatives), sometimes several at the same time for the same operation. Success will increase the completion level, but ignoring the mission or failing may cause attrition and/or decrease the completion level.



5GQwHcx.gif
Research will work almost like in X-Com : you'd need to find an artifact to unlock its power. Some might require prior research. You'll then be able to craft lesser items (with some more research efforts), and re forge the artifact itself to equip one of the champions. Champions will be like Psy capable troops in X-Com, and have abilities on top of the regular ones. But their abilities will depend on the artifacts they are attuned to (you can only use artifacts from a single god for each champion).
rjgAkKr.png
The map will be formed of fixed "points of interests" : settlements, strongholds, dungeons, and quest locations. The heroes and the overlord lieutenants will travel from one point to another one (like in Jagged Alliance), and fight if they decide to undertake a quest or explore a dungeon, if they want to conquer a neutral settlement or stronghold or if they meet a hostile party. The victory conditions will be something like : defeat if the player stronghold is taken, victory if the Overlord is defeated.
qWvD3Zg.jpg
The team :
Me (project leader/developer), Maciej Bogucki, our game/level designer, and Alcibiade Minel, our composer/sound designer.

The plan is to get a demo out for the Autumn Steam festival, with a few quests and a few turns on the strategic map, and go to kickstarter early 2022 in order to get the graphics for all the neutral factions and monsters done, get some more content into the game.

Links:
Discord channel


The story so far:
I had been thinking about making a fantasy X-COM years before starting working on Zodiac Legion, because I never really understood why there wasn't any.
So I started when we moved to Shanghai for my wife's assignment, as expatration meant we could live some time on a reduced income.
The first playable prototype was ready in 2014, and the Codex has been the first place on the Internet to see it:

FoNir1T.png

I had to rewrite a lot of things when moving to the "real game", and development has been quite taxing, especially after we moved back to France (working from home with a baby usually does not work as planned), and the prototypes that were demoed at conventions around 2018 were dragged down by a poor UI. UI rework ate a lot of the development time, but stars started to align in 2021, when the game eventually got a good "feel" and had a nice preview in the March 2021 issue of CanardPC, followed by aour grant request being accepted, and the game being selected for the Guerrilla Collective .

Despite rumors of being a place of edginess, I haven't found a group as supportive as the Codex for this project, so thank you very much!

Our gameplay reveal trailer will be showcased for this occasion (and will then be available on our site et on Steam).
 
Last edited by a moderator:

Borelli

Arcane
Joined
Dec 5, 2012
Messages
1,304
Jagged Alliance / X-Com in a fantasy setting. Fuck, why aren't there more of these? The formula writes itself! I hope you pull this off to the end.:brodex:
 

Protopop

Literate
Joined
Jan 27, 2014
Messages
9
I love the map. It's so bright and verdant - makes me want to dive in and explore those forests:)

It looks like you already have a lot done. I haven't played X-Com but it's reputation precedes it. It sounds like you have an interesting take on strategy RPG. Keep up the good work.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
I found the map on http://freefantasymaps.org/ it was made under campaign cartographer(I used it a lot when I was DMing my paper RPG campaigns, it is powerful but somewhat counter intuitive to use). We may do the overland map ourselves,as it makes modifying and rebalancing it easier, thus the end result will be somewhat similar ( but I will probably use another map style).

The characters were from the RPG enemies collection of http://opengameart.org/, so they will be very different from the end result.

On the technical side of things, the game is written using MOAI. I chose this engine because I wanted to be able to port it to iOS later on without too much hassle if it was successful, and I wanted an open source engine to be able to modify some parts of it if needed. Most of the game logic is written in lua, and I use C for calculations and AI.
 
Last edited:

Protopop

Literate
Joined
Jan 27, 2014
Messages
9
I can totally relate to the open source love - thats why i program in HTML5 now and i think the less barriers and hassles the developer has, the better. I mean, you guys have plenty of other things to think about:) The game mechanics sounds great and working with all those languages is impressive.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
On Hexagons vs 4 sided tiles : We are often asked why we went with hexagons instead of the more regular square grids.
Square grids do not work well with zones of control (or area of opportunity in DnD). The reason why is that it makes density not the same depending on relative positions :
If ZoC extend across diagonals, it makes a single unit able to block a much larger area, but if they don't, it makes it very hard to block way with someone.
The same goes for allowing diagonal movement or not. It leads to many stupid situations
The main problem is that whatever options we would chose, there would be a gamey way to exploit the lack of symetry in the game world.
The best options from this point of view would be to have TOEE like continuous movement, but that would make movement very micromanagement heavy, while we want players to focus on the bigger picture.

Hexagons were chosen because they were a good compromise between these two options.

The main problem with hexagons is the world representation : Most rooms use to have 90 degrees angle, and not zigzaging walls, but underground dungeons architects surely do not care much about this, and we can go the fallout way to make the heaxgonal grid not too apparent when looking at the maps(by adding columns or other props ).

All the hexagon specific mathematical functions(distances, representations, adjacency, path...) are already written. The hexagonal maps were done using the tiled map editor, while using a staggered isometric layout for the hexagons (because hexagons as isometric tiles have the exact same layout, the only difference is that they don't have the same adjacent tiles).
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
As I an in the middle of switching a few libraries for other ones, and rewriting some others, I'll talk about something more interesting instead, the inspiration and general direction of tactical battles :

Inspiration

I mentioned X-Com and Jagged Alliance a lot in the first post, but these games inspired the general philosophy of our project more than the actual combat mechanics, so let's go for another seance of name throwing, and let's see how it affected our design :

The main inspiration for the tactical part comes from a board game : Descent : Journeys in the dark, and to a lesser extent from Heroscape and Space Hulk (another board games).
Descent 1st edition was an awesome dungeon crawling game, that was plagued by a very cumbersome interface (you had to physically search for a lot of tokens, frequently refer to the rulebook, and clearing a single dungeon could take up to 6 hours), and poor game balance.

What we liked was the feeling that the heroes there, despite being very powerful, felt more like special forces than dungeon trashers : You had to go in quickly, complete the objectives ( and sometimes go out as quickly), before the endless monster reinforcements would overwhelm you.

We want the tactical battles to have the same pacing, to force the player to rush and take chances instead of methodically cleaning every room for XP, which leads to the following gameplay elements :

- Most tactical battles will either be timed (like clear the fort before the opponents complete its ritual) or feature unlimited reinforcements for one side (usually not the player side, except in a few situations).
For non timed missions, opponents will run away or surrender if faced with certain defeat, to remove the clean up phase (and because there is no reason for every opponent to fight to the death when the day is already lost. They surely have other plans in their lives than griefing the player by tring to take one soldier with them in a lucky blow before going down)
- Killing monsters will grant no experience. In order to avoid delaying mission completion for no good reason, all XP will be awarded depended solely on the mission difficulty and its outcome. All participating soldiers will get XP regardless of what they did (in order to avoid players feeding all the finishing blow to the champion they want to level up, and because there is no good way to tell which of them did the most anyway).
- Missions will feature a variety of objectives, like catpuring an objective, freeing and extracting prisoners, assassinating an important NPC, recovering an artifact, or defending a stronghold : Killing every opponent would not work as an objective with reinforcements arriving each turn :)
Objectives introduce more variety in the mission gameplay, and make hide and seek and kiting much less problematic(and varied mission objectives was one of my prefered features in Fallout : Tactics).

Risk management, experience and casualties

We want the game to be about taking chances, about evaluating the benefits of winning a mission against the risks of losing valuable soldiers, but at the same time, we don't want games to be decided by a single battle that went wrong, but we want every action to carry risks to the soldier.
In order to achieve both of these, we drew some inspiration from Blood Bowl in the way characters are wounded or killed :
Most characters, friend or foe will have very low hit points (we are aiming for 1 hitpoint for most soldiers, and up to 4 for champions), so that you cannot let anyone take damage and be sure he will still be operational on next turn. Of course, armor and character skill can still make it very unlikely for him to die ( armor works as in Descent 2nd edition, or Heroscape : it gives you defence dice that can prevent damage, but it is never a sure thing).

In order to make character casualties manageable, all downed characters won't be dead. As in Blood Bowl, there will be a check to determine if the character is merely Knocked out, injured, or dead. If the mission is a failure, there is a chance knocked out or injured characters will be captured. In order to make "character rotation" less painful, and power creep more manageable, the earlier level up will yield much greater benefits than the later ones : a level 2 character will be much more powerful than a level 1 one, but a level 6 character will only be slighlty stronger than a lvl 5 one.
Unlike in neuXCom, character upkeep over time will be much higher than the initial cost, in order to make recovering from casualties easier, but maintaining a large roster of elite soldiers harder.

We want success of failure on a campaign scale depend on the results of many missions, and not a few ones, in order to allow room for failure. Another feature inspired by Descent, Road to legend is that the opposing faction will ultimately manage to achieve its victory conditions if the player delays the campaign for too long( for farming more experienced heroes, gear, or whatever), so that tension remains high from the beginning to the end(of course, it depends on many more parameters, and is hard to achieve, but that is the general intent nevertheless : to give the player no pause either during tactical battles or on the strategic campaign).
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Any idea about how best to do the overland map?
My initial idea was to outsource it to someone specialized in mapmaking (I could get something like the map on the presentation thread (let's call it map style 1), or this one :

Map Style 2

DSFreieLandeCC3klein.jpg

or this one :
Map Style 3

black-white-overland-1024x823.jpg

from Map and more.
Then I thought that by doing it myself using the same software (campaign cartographer 3 + 2005 fantasy overland style), I would be able to modify the map as needed.

But I am worried it might be too generic if I use the same map primitives as virtually everyone using Campaign cartographer (I think it is mostly used for RPG campaigns).

What do you think about it? Are these too generic? If not, which style do you prefer? Is it worth making a custom map tileset instead? The main advantage would be to make the map style blend better with the icon style we will use (we still need to represent cities affiliation on the map, as well as friendly and opposing parties locations, quest locations...).
 
Last edited:
Joined
Apr 3, 2006
Messages
1,386
Completely replacing all the map icons sounds like a lot of work. How are the CC3 map primitives stored? Are they easily accessed and modified vector/raster icons? You could just modify the major points of interest, like cities, and stick with the stock icons for filler. And I think it's ok if the world map and tactical map art styles are somewhat different because they're different layers of abstraction.

To me, the second map example above is the most visually appealing but probably less workable as an in-game strategy map than the cleaner style of the other two examples.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Indeed, the second map is the best looking among these, but probably not too suitable for displaying extra informations (UI + dynamic elements). 3rd one would probably be the easiest to use. I'll first test both with some extra UI elements.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
It's been quite some time since last update :
I have reworked the code to allow for paperdolling of characters, so that the equipment of the characters is WYSIWYG, have worked with a few freelance to create the art for the kickstarter campaign. It will only have a dungeon set, and a few human and skeletons sharing a few sets of armor (around 5) and weapons (around 10). I am working on the UI now (inventory, and roster mostly), so it's not very interesting to show. It should all come together to be screenshot ready in June, and I intend to have something(tactical module only) playable with a stupid AI and placeholder UI at the end of July.

I'll post a bit about hexagon constraints and architecture later tonight.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Hexagons and walls don't go too well together, as human constructions usually have 2 strong 90° axe while hexagons have 3 60° axes. For a way around this, we decided to use squished hexagons (for isometric look), and alternating on a 3 sequence, with a bit of shift :
Exemple of hexagonal architecture in project Ragnarok :
YrkQ3SH.png

underlying hexagons :
Belakq1.png


So why the shifting wall instead of the standard zigzagin hex? We wanted to use a single piece for T, corners, and doorsteps. Thus, we would have need to have the width of all rooms and corridors be 2*X - 1 (for the walls), but I wanted the standard corridor width to be 2, so we needed to either have lots of corners and T junction variations, either "horizontal" walls tiles alternating over 3 tiles.
j3kxRBj.png

In this exemple, the room and corridors need to have either a width of 1 or 3.

The hexagon details are : length = width = 96 (96 is the size of the cell, but only half of the surface is used by a single hex).

The math formulas I used almost all came from this wonderful site :

http://www.redblobgames.com/grids/hexagons/

I convert the rectangular coordinates to xyz coordinates (where xyz are 3 axis with 120° angle, x+y+z = 0), to do all the computations, then convert back to rectangular coordinates for display.
The site contains the formula for hex distance, and some other very useful references.

distance = max(x2-x1, y2-y1, z2-z1)

I'll explain how to use an isometric generic editor like Tiled to display hexagonal maps next week. Basically, you don't need a specific hexagonal map builder.
 
Last edited:

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Actually, one of the drawbacks of using the course we followed is that the diagonal length are a bit unconsistent :
as you can see on the second picture, one diagonal is 8, the second is 10, so basically, the room are not really rectangular, but we considered it an acceptable trade off compared to have to make duplicates of each corner and T junctions (4 of each).
It is possible to use the raw hexagonal directions as some sort of perspective, but then, the diagonal problems would become much more important(4 vs 8).
I really like the perspective.
Thank you :)
But now, we'll need to make apparent overlay hex borders as it would be quite confusing otherwise.
 
Last edited:

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
I'm looking for UI ideas : I will have the UI be resolution independant, and I plan to have a maximum of 15 controllable characters.
It is a bit much to dispose all of them on screen Jagged Alliance 2 style, which would be my preference :
screenshot05.jpg

But the picture there shows why it would not work with a 15 character team ...
Using smaller icons to the right, with an infobox on a corner for the currently selected character ala Dawn of War 2 would not display as much info as JA2 roster, but it would make it easier to fit everyone on screen :

warhammer-40-000-dawn-of-war-ii-retribution-pc-1299166110-117.jpg
So basically, I can either
1) use JA 2 layout with arrows (and a scrollbar?) to view characters on the right or left of the ones currently visible
2) use JA 2 layout with a "squad" tab to display every member of squad #1 or #2
3) display everyone on screen, with minimal informations (class, level, portrait), ala Dow2.


If using JA2 layout, I would want to display the character class and level, the portrait, name hitpoints, health, and actions left for all characters, and special moves available.
If going for the minimalist Dow2 approach, I would only display the character portrait, level, actions, and health.
I know it is hard to judge what would be needed in a vacuum, without playing the game, but what do you think would work best given these parameters?

It is possible to more or less combine both interfaces, by having some character data on the bottom of the screen (like in the JA2 screenshot), and then, the icons for all characters on top of it(with the ones not displayed greyed out), but that would take a bit more screen space, and I probably won't fit the portait then (only the classes icons, and levels).
 
Last edited:
Joined
May 27, 2013
Messages
310
You could have the small portraits a la DoW2 and allow the player to tab through the characters to show each of their abilities and some relevant stats, maybe even bringing up a larger image of their portrait as well. Trying to display info for 15 characters at once could easily become very messy very quickly.
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
You're definitely right. I will adopt a DoW2 view with miniomal info (level, specialization), and a more detailed stat window for the current character.

Concerning the development updates, I am currently working on the paperdolling system :
We wanted the equipment to be WYSIWYG, and we wanted to be able to mix and max equipment pieces in order to make variations easier to do.
Here is an exemple :

tzZnYyc.gif

XHaBzuI.gif

508mw5P.gif


Doing it in pixel art was quite a headache, but now it's almost done :)
Not all parts are equal : In orde to make variations easier, the artists focused on making the head move as little as possible. Thus, doing extra helmets requires minimal work (the shield, weapons, and breastplates requires more work, but remain a light workload, pauldrons require a moderately heavy workload, and leggings and arms require a very heavy workload).
 
Last edited:

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Btw, it gave us a rough estimate of the cost of adding female characters (cf the Assassin Creed 4 "polemics") :
editing arms, legs and body(and not just the head) would take 40% of the time needed for the set of male animations according to our artists, and that is, without retailoring armors for female (which makes sense in the case of plate, but not so much in the case of leather armor).
Each retailored armor would add 40% to the workload.
It is probably very different if going 3D, but in our case, it is certainly not 1 or 2 days of work, so there won't be females characters (we might make this a kickstarter stretch goal), as we'll already be quite hard pressed to add enough armor variations.

Edit : I have update the title. The reason for the change of title will be more apparent in the next update.
 
Last edited:

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
The graphical art assets are almost all done. I'm currently exporting, checking, and finetuning the animations. It is quite a lot of work, with little gameplay value. I will post gifs of the combat animations in engine as soon as it is over (probably in one or two weeks).

In the meantime, concerning the setting :
The game will take place on a kingdom, protected by 12 orders of knights (even though most of these knights are mundane, each order has a few people mastering supernatural techniques specific to that order), named after the 12 signs of the zodiac. There once was a 13rd order (Ophiuchus), but they were banned for use of forbidden techniques.
The player will play a pretender to the throne opposing the legitimate ruler. In order to do so, he starts by breaking the seal to the pocket dimension that holds the lands of the order of Ophiuchus.
So you start with a single order, and try to rally some of the neutral ones to your cause (Libra remains loyalist whatever happens, the other will join, oppose you, or stay neutral depending on your actions).
 

Galdred

Studio Draconis
Patron
Developer
Joined
May 6, 2011
Messages
4,494
Location
Middle Empire
Steve gets a Kidney but I don't even get a tag.
Here are a few screenshots of the tools we used for the animations :

92ugtRO.png

The graphics programe used is GraphicsGale : it makes it easy to select the frames you want to work on, and to combine whichever layers you want.
A single GG file covers a single animation for all armor parts and weapons for all sets (they can be combined any way you want).
On the screenshot above is a view of all the layers relevant to a human armored with chainmail (except for the greaves, as they are not done yet).
The menu on the right is for selecting layers (so all layers with other armors were unselected), and in the bottom of the screen is the Frame selector (to select which frame will be worked on).
The preview on the right is the animated preview.
In order to export the animation, the general data is first exported (duration for each frame) in csv format.
Then each layer is selected alone, and exported with a name describing the animation, set(plate, mail...), and piece (helmet, breastplate...).
EN1o9QD.png

We end up with a png file for each layer ( a layer = chainmail greaves for instance, or plate helmet), for each frame.
That's a lot of files(more than 8000 for the armor parts frames so far, and more than 1600 for the weapon frames).
Many are redundant (the same image is sometimes just moved a little between two frames, without any other alteration, especially for the head, and torso). It is of course not feasible to keep them as separate files, and to waste memory on redundant images.
In order to automate this process, we use Texture Packer (which is really awesome, and saves a lot of work) :

We just drag and drop the folders we want to combine on Texture Packer (one for all armors, and one for all weapons so far), and it automagically combine them in a single spritesheet, culling the transparent parts, rotating sprites, and aliasing duplicate images, and generate a TextureIndex(in lua in our case) to retrieve the individual sprites by their names.
We just had to use heuristice mask to remove background pixels, tell TP to crop the images, and voila, done!
92ugtRO.png
 
Last edited:

Siveon

Bot
Joined
Jul 13, 2013
Messages
4,510
Shadorwun: Hong Kong
No problem.

Looking at them now, I'm drooling. I always love the look of some good ol' fashioned sprites. Fucking timeless, man.

:d1p:
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom