News:

Welcome to the new Sinister Design forums!

Main Menu

A new engine!

Started by CraigStern, June 05, 2016, 05:39:11 PM

Previous topic - Next topic

CraigStern

-obtained finished sprites for the unpromoted version of the Kineticist class.

-obtained finished assets for procedurally generating spriggat portraits; currently plotting the correct placement of assets to allow for visually accurate portrait generation.

CraigStern

-implemented progressive weapon degradation and breakage when using attacks that employ the weapon.

-finished plotting portrait asset placement for male spriggats.

CraigStern

-created a "quizzical/confused" facial expression configuration.

-began plotting portrait asset placement for female spriggats.

CraigStern

- new skill: Preemptive Stance. Cost 4; this gives the user the status effect Preempting.

- the Preempting status effect is now in-game and working. For 1 round, a character with Preempting launches counterattacks before the attacks that trigger them! If the counterattacker has reflexes, he or she automatically uses up 1 reflex point along with the counterattack to completely nullify the incoming attack.

- non-item sack objects no longer display their inventory when right-clicked; you've gotta destroy them to see what they contain. :)

CraigStern

- new skill: Guard Stance. Cost 1; this gives the user the status effect Alert. The same as Awareness, essentially, but it ends the turn after use. This one will be going to cavaliers.

CraigStern

Back from PAX East! Here's what I've been working on:

- new skill: Hold. This implements a "zone of control" around the user that lasts for 1 round, rendering enemies who walk into adjacent spaces immobilized. This skill can be learned by the polearm-wielding classes: spearmen and cavaliers.

CraigStern

- attacks with a "ToTarget:X" moveType attribute (i.e. the Cavalier's Charge skill) are now working correctly.

CraigStern

- I've implemented some new constraints on character growth and generation to help enforce specialization, help ensure that units work well within their assigned class, and ensure that stat improvements aren't wasted:

      - characters can no longer gain points in a resistance upon level-up if their base resistance of that type is already at or above 80%.
      - characters no longer gain reflex points upon level-up if their base reflexes are already at or above 1. (The step from 1 to 2 reflexes is significant, and this allow me to reserve that progression for certain front-line melee classes at significant moments, like upon promotion.)
      - reflexes can no longer be randomly selected as a growth for generated characters;
      - generated characters can no longer randomly receive growths in resistances against elements they're ordinarily weak to, or which oppose their affinity (i.e. no spirits with growths in mental resistance, no pyrokineticists or red spriggats with growths in cold resistance, etc.);
      - generated characters can no longer randomly receive growths in stats that do not benefit them (i.e. mentalists getting accuracy growths, or psy healers;
      - randomly selected growths are now weighted toward fewer stats and smaller growth probabilities so that character stats more reliably improve in line with the needs of their class. For the same reason, randomly selected growths can no longer get a probability higher than 2.

CraigStern

#128
- the Set Army Alliance condition is now working in the game. This now works a bit differently than it did before; instead of individually setting each army to a named alliance, you'll just input the number of each army to be allied with one another into a single condition. So instead of...

  <Condition>Set Army Alliance,1,Ambuur Zaris</Condition>
  <Condition>Set Army Alliance,2,Ambuur Zaris</Condition>


...you'd just do:

  <Condition>Set Army Alliance,1,2</Condition>

This way, armies can belong to multiple different alliances with different members. (Also, the use of integers instead of strings for representing alliances will give a bit of a speed boost as the computer processes the viability of different targets on the battlefield.)

bugfartboy

Quote from: CraigStern on March 17, 2017, 02:03:25 PM
This way, armies can belong to multiple different alliances with different members.

What would happen if an army were allied with both sides of two opposing armies?  e.g. 1 is allied with 2, but not 3, and 3 is allied with 2 but not 1.  Would 2 be ambivalent to the existence of both armies, or would it work to heal/boost both armies, while refusing to attack either of them?

Ertxiem

Quote from: CraigStern on January 19, 2017, 03:23:42 PM
At the start of a player's turn, the game now finds the average of all coordinates for characters on that player's army, finds all such characters within 6 spaces of there, and then pans to the coordinates closest to the average of those characters' coordinates. (In short, it pans to a group of characters that are close to the average point of all characters in the army.) If the game can't find such a group (i.e. because the units are spread out exclusively in various far-flung corners of the map), it just picks the first character in that player's roster and pans over to him or her.

I was reading older posts here and I thought about a suggestion to an alternative way of selecting the initial point to look at.

Averages sometimes behave in unexpected ways. E.g., if you have your army split in two similar sized groups, the average position would lie in no man's land. If one of the groups is rather scattered, it may happen that the camera will focus on a lonely character.

An alternative would be to pan on the character that has the most units (allies, or allies + enemies) in a neighbourhood (say a square of a given size centred in that character).
Ert, the Dead Cow.
With 2 small Mandelbrot sets as the spots.

CraigStern

Quote from: bugfartboy on March 17, 2017, 05:52:26 PMWhat would happen if an army were allied with both sides of two opposing armies?  e.g. 1 is allied with 2, but not 3, and 3 is allied with 2 but not 1.  Would 2 be ambivalent to the existence of both armies, or would it work to heal/boost both armies, while refusing to attack either of them?

In that scenario, the latter would occur: army 2 would treat both 1 and 3 as allies. It would attack neither, and would treat the units of both armies as candidates for healing abilities.

Quote from: Ertxiem on March 20, 2017, 05:57:40 PMI was reading older posts here and I thought about a suggestion to an alternative way of selecting the initial point to look at.

Averages sometimes behave in unexpected ways. E.g., if you have your army split in two similar sized groups, the average position would lie in no man's land. If one of the groups is rather scattered, it may happen that the camera will focus on a lonely character.

An alternative would be to pan on the character that has the most units (allies, or allies + enemies) in a neighbourhood (say a square of a given size centred in that character).

That could work too! I'll keep it in mind if the current solution ends up not working properly.

CraigStern

- I've been working on getting palette swapping working in the game. It's been taking longer than I would like (Unity really isn't designed with this sort of functionality in mind), but I've gotten a significant amount of preliminary work done, and I'm quite confident that I'm going to have this working within the next week. If you don't see any updates for a bit, it's because this one feature is taking me a disproportionately large amount of time to implement.

CraigStern

- completed 7 army palettes for unit sprites, plus 4 skin palettes for human, lissit, and spriggat character portraits. All palettes are properly formatted to allow dynamic palette-swapping at runtime.

CraigStern

- mocked up a new "circle" designator graphic, successfully got Unity to palette swap it based on the unit's army color.