What's new


Tech Devil
Nov 14, 2019

Developer: Dream Chaser HentHighSchool
Release Date: 2019-12-31
Last Updated: 2020-01-07
Censored: No
OS: Windows, Linux, Mac
Language: English
This is a completely rewritten version of Ashford Academy. Ashford Academy is a game where you take the role of the newly appointed principal (male). From this point it's up to you to decide what happens next.

- added 2 new events to location sensuality
- pair dance event in location sensuality expanded
- adjusted event conditions of sensuality events
- reduced frequency of event office26 once it has reached its end state
- bugfix: fixed crash on weekly effects if bdsm punishments are active
v0.3.0 - Sensuality
Big Picture:
- updated from renpy 7.1.0 to 7.3.5
- new pictures added to existing events
- new events added in existing locations
- a lot of the simply events have been merged, pictures and texts now combining in more variations than the old standalone events
- new location "Sensuality" - unlocks once lust_enhancement isn't "none" anymore
- value dependent tooltips for all student stats - helps players (and mod writers) to know what a stat value actually means
- rollback enabled during the day (but you can't go back to the planning phase, or from the planning phase)
- folded derived stats class into stats: every stat can now have a static and a temporary, and a function and be influenced by game objects
- new event variables (set with arg var=... in the event definition) do not break old saves anymore (they get initialized on load)
- new game objects do not break old saves anymore, which allows mods defining game objects (e.g. clubs) to be added into an ongoing save game
- improved documentation (including the example mod)
- added major new income source in form of the building "Surveillance"
- players starting with outlook "careful" will still get the Susan and Marina blowjob scene later on, so no path will permanently miss it anymore
- reputation overhauled: weekly changes reduced to 1/4, but gets immediate benefits from raising student stats (up to 45 if deviance is 0) and upgrading buildings (up to 40),
starts at 12 instead of 10, max raised from 100 to 150. With this, getting your reputation up should be quicker, but it should slow down instead of speeding up later on.
- added option to raise staff_support to weekly planning
- set image distance from conservative image to normal dresscode to 0.5, and changed default max_img_dist from 0 to 0.5
That means that when the current dresscode is normal, events with only conservative images may still be chosen, widening the event pool
- max_img_dist for all canon dormitory events set to 1 (thanks to img_prefix), meaning the dresscode is less strict in the dormitory, widening the event pool
- for dresscode none, at inhibition<15, students will now often choose to go nude at the bath, the pool, and in the dormitory
- can_be_evil becomes False if your outlook becomes saint/good/nice/charming
- inhibition lowering unlocks are now recognized by the game as a sexual policy (values 0.3, 0.4 and 0.5 for the 3 levels)
- halved positive influence of teaching materials on athletics. It was rising a bit too quickly.
- slightly rebalanced bdsm (tilted more towards improving behavior)
API Additions:
- new tag "flavor" for images, letting you easily change small details of an event depending on the image chosen (for events with randomized images)
- new class Person, which allows writing text for both genders at once easily, or for one or multiple persons
- new class base in mod base, to provide function results as properties for renpy text interpolation
- img_e event definitions can now take tags "c:","ch:","e:" and "u:" tags, which work exactly like in the image definitions. Documentation updated for it.
- You can now specify tags or keyword arguments in the img_prefix function, and they will be picked up by image definitions and img_e event definitions
- all game objects now have 'age' and 'days_since_change' properties, so events can check for older buildings, established policies, ...
- added variable 'initializing' which code can use to check whether we are loading up the game (when data structures might still be missing)
- new method img_copy, which allows using one image in multiple image groups
- new stat "staff" (was just a function before), making it visible in the gui, and allowing it to be influenced by game objects (policy "lust_enhancement" raises it by one if not "None")
- tag alias "u:dressed" added as short hand for all dresscode neither "nude" nor "none" (i.e. "u:sexy","u:normal" and "u:cons")
- event variables added: current_img_o, current_img_sweep, main_img_o, main_img_sweep
- set_img(): new parameter tf (replaces tf tags of image instead of adding to them like at_list does)
- added convenience function event_happened()
- random_say: <say> argument can now alternatively be given an array of strings instead of a string. Will be said one after another.
<speaker> may be an array in that case as well (at least as long). "if" and "else" may now be combined
- new function image_for("class") - may be expanded for more situations later
- new function set_img_letter, to make working with images named like bath2-1a.jpg,bath2-1b.jpg,... easier
- new convenience function img_lettered, returns whether set_img_letter would change the image
API Changes:
- logic change: the current event is only marked as executed once it has concluded, instead of before
- current_event is now set during evaluation of which event to execute. That means that you can use it in any functions called in the condition string
- sexy_slaves is now a variable instead of a function, toggled on by the Susan/Marina blowjob scene (contains day when it got toggled)
- event variables renamed: current_scene_img -> current_img; main_scene_img -> main_img
- set_img(): now defaults to transition None if the name of the displayed image does not change
- set_img(): trans_scene_continues now defaults to fade instead of None
- Unlock class changes:
--def_active=True instead of False (now equals the default of GameObjects, so more consistent)
--now uses "unlock_effect" for things to happen on unlock, instead of "effect" (so effect is for weekly effects for all GameObjects, so more consistent)
--unlock objects are now enabled once they are unlocked, allowing for weekly effects and stat influences
--removed property "unlocked", since it can now be more generally be provided by "enabled"
- Rule class: upchange_stress=0 instead of 1 (now equals the default of GameObjects, so more consistent)
- GameObject class: does not have a keyword argument def_unlockable anymore, instead unlockable says whether the unlock object will be generated active. Stored variable for it eliminated.
- functions support_difficulty and support_difficulty_inv removed, replaced with max(...,0) calls
- redefined 'force_prio', it is now a shortcut for executing an event once only
Small Changes:
- display year in main menu
- location tooltips in main menu
- game object age is displayed in menus (above return button) if "More Numbers" Option is enabled
- event_happened() and event.happened().eval() now return the day the given event last happened instead of True (fully backwards compatible).
- unlocks of hidden policies are now hidden, and unhide once the policy becomes visible
- made stat recalculations more efficient (game object influence, temp stress)
- tag strings "<key>:<value>" as used in the image definitions, are now checked for valid keys, and in the case of "c:<content>" for valid content types
- the tag parser now checks dresscode tags against the registered dresscodes
- added a (commented out) example_fightclub to the example mod (with one event with one picture, with placeholder text). Just as a starting point...
- wished_dress is now only set once per events selection instead of once per picture choice
- simplified code to remove population_new - it was left over from before population became a stat
- increased text size of date displayed before main screen. Makes it readable in autosave screenshots.
- the debug screen now tries to guess the act and period from the label name when you call an event
- the debug screen will allow rollback, until you hit the return button (to the main screen), at which point the events are committed
- the debug screen now shows a list of banned characters,images and events (not modifyable)
- the debug screen now displays the state of the event variable of the event last run from the debug screen, if it has any
- the debug screen now displays the total game days and allows setting it. This makes time jumps possible when debugging events
- switched event evaluation of strings from eval to myeval. This gives error messages containing the string which was evaluated, making for easier debugging.
- now running the evalutation of all events on game load - allows early catching of syntax errors in event conditions
- added missing return in event gym14
- debug screen now allows setting lower inhibition after the unlock (min_hint and max_hint now update dynamically)
- the game now remembers changes you made in the current planning phase if you save and reload (might have worked in some older version?)
- keep game from crashing when trying to unban an event/image/character which is not banned (simply don't do anything)
- trying to ban an event during event setup just crashed the game. Dead code which never worked. Now it does, and is used.
- the first transition of the day also counts as first transition of the event
- being charming had goodness 0 instead of 1
- there where some stat changes of pattern stat+=<n> instead of stat_o.value+=<n> This led both to misattributions in the "Stat changes" screen, and in plain wrong stat changes

Developer Notes:
This is a completely rewritten version of Ashford Academy!
The canon events of Ashford Academy work as is (and so should events from mods), but I am only including the events I have converted in this upload.
Conversion means that the events use the new systems I have build, and the stat values are adjusted to better fit this version.

I want to give a huge huge thank you to Ashford at this point! If he had not put his project under the GPL, I never would have even considered modifying the code base. :-D

My initial itch was having the pictures match the currently active dresscode (school uniform), but it just grew and grew from there. :)

During the coming weeks I intend to port over all of the (non-story) events from canon. I have done enough of them by now to know this is just a matter of steady work.
After that is done, I intend to add more rules, policies, clubs, ...
And I would very much enjoy help of any kind. I have kept the spirit of the original game and made this extremely mod friendly. So if somebody wants to e.g. port over the story events and expand on them, please go ahead!
If anybody wants to help, then the first thing that would really help would be to fill in the picture placeholders ("800x600"). Or just try to make a mod with events as explained in the readme. ;-)

Otherwise, just try it out, tell me what is broken, and give me constructive feedback.

I'll reserve the following posts for a changelog of future versions and the readme describing the project - both on its own, and in terms of changes in comparison to vanilla Ashford Academy.

Please let me know if there is a problem with the mediafire links or if the game does not start. I have unpacked and started the distributed game version under Linux and Windows, I don't have a Mac to test.


Win/Lin - MEGA
Mac - MEGA
Android - MEGA


Player Guide:
I just finished the game in its current phase (everything unlocked, high stats on everything, purchased all buildings with a 1-2 upgrades) . It took me about 4 hours.

I really enjoyed it as a simplified and more transparent version of HHS. Being able to see all the stats and not having to worry about stuff like lecture schedules and specific teachers helped a lot. The game could benefit from a bit more content that focuses on individual relationships (with teachers and students), but the management algorithm works pretty well.

Here is some gameplay advice:

There are basically two phases in the game. During phase 1, you need to build up a respectable school by focusing on the following stats: behavior, morale, academics and athletics. This phase ends when these stats are high enough (50+). During phase 2 you can prioritize deviancy and (lowering) inhibition.

  • First you must focus on your regular tasks as a principal: improve behavior and morale, an increase academic and athletics records. Until you have all of these high enough (50+) I would not focus on the naughty stats. I ended up prioritizing them in the following order: academics > morale > behavior > athletics, though I don't think this matters. EDIT: /u/Darthjake suggested to focus on behavior first, because for the previous version it was recommended by the developer.
  • This should also take care of your reputation, as your money and staff support gradually grows.
  • To increase behavior, moral, academics and athletics, set policies to boost academics (better materials, smaller class sizes, etc.) and find a balance between order (school uniform, teacher leeway) and fun.
  • If you make changes too quickly the stress level of students goes up, but I never noticed any impact on the game as long as it stayed below 15 (which was never a problem).
  • Initially get as many new students as you can (by relaxing requirements and - I think - building reputation). This will reduce other stats (because new students misbehave), but you need the money. Once I got close to ~200 students I started increasing requirements and finished the game with ~300 students. It's possible that more students would have allowed me to speed up by investing more in buildings.
  • Buildings - initially focus on the ones that are relevant for academic and athletic performance. I got all as soon as I could (except for dormitory which is only necessary if you have >300 students), but did not upgrade any until much later.
  • Clubs - only 1 in the game now - cheerleading. I got it immediately (through 'unlock'), not sure if necessary.
  • Unlocks - focus first on the ones that have an impact on academics/athletics (e.g. 'tiny classes') and behavior (e.g. 'teaching leeway'). But mostly wait to unlock stuff until the academy is running well (high behavior / moral / academics / athletics). Note: the cost of unlocks depends on some other stats, mainly student behavior - the better students behave, the easier it is to unlock things.
  • -------------------
  • Once all your stats are high enough, start working on the stats deviance and inhibition. At some point the stat 'lust' is added to the game, but this goes up automatically with the others. Unlock things that gradually expose students to nudity and sex (uniform, depiction of human body, PDAs allowed), and change policies/rules to implement these. You often have to grind a bit to get enough staff support to pay for these unlocks, but it goes quite fast at this point.
  • Students and teachers are fine with more lewdness (high moral, high staff support), student stress levels may be higher but this has no consequence. Your reputation decreases slowly but not to the point where it becomes an issue (in my case).
  • What you do during morning/afternoon/evening is up to you, I'm not sure what the impact is on the game. WHile you are building academic and behavior stats you should act as a responsible principal. Once you start focusing on deviance and (lowering) inhibition you can take lewder actions, but these choices should be pretty obvious.
  • Sunday review: you can choose what teachers will focus on, to boost a specific stat. Pick the stat that you want to raise, in my case it was mostly behavior unless morale fell too low. Later on you can choose 'exploring their bodies' as an option, which you can choose when the other stats are all high enough. You can also choose to give the teachers a break, which gives you an increase in staff support that you can use to unlock things.
  • Once you have completed all the unlocks there is nothing more to do. There is some interaction with individual students (e.g. in the library and bath), but I imagine that this is something the developer is still working on.
Top Bottom