guidokessels / xwing-data

An easy-to-use collection of data and images from X-Wing: The Miniatures Game by Fantasy Flight Games.
94 stars 38 forks source link

Attack type field #122

Closed philipdouglas closed 7 years ago

philipdouglas commented 7 years ago

I'm rewriting r2-d7 to use this data set and have found that ships currently don't have any data about their attack type, ie Rear arc, 180 arc or turret. Without it, you can't full replicate all the data on each pilot card.

How about an "attack_type" field that can either be "turret", "frontback" or "180"? (Those are the names r2-d7 currently uses because that's what YASB calls them internally, but I'm open to changing them.) Should normal ships just not have an attack_type or is a "normal" value or similar better?

guidokessels commented 7 years ago

Sorry for the slow reply, I am currently traveling.

This'd be a great addition to the data set. Perhaps we should call the field firing_arc? How do we handle the special firing arc of the Ghost and the mobile firing arc of the Lancer?

philipdouglas commented 7 years ago

Yeah, firing_arc makes sense.

Neither the Ghost or Lancer arcs are indicated on the card (except for the Lancer having the Rotate Arc action) but it's probably worth including them for completeness. How about frontback_torpedo and mobile?

Mu0n commented 7 years ago

I'm thinking about how I could leverage this the few times we'd get information about a ship, including its dial, but the vassal module wouldn't yet have that ship. It could easily generate a WIP ship if it knows which kind of arc it has. There aren't too many cases and would lump a special ghost arc with any large auxiliary arc for the purpose of having the back arc toggle.

Huge ships are a whole new headache and are a case by case thing since we often learn of a new type of arc altogether.

guidokessels commented 7 years ago

How about we make this field a list of firing arcs, with the default firing arc being called "front"? (or perhaps we can just omit the field if the ship only has the default firing arc)

Examples:

x-wing:
  firing_arcs: ["front"]

yt-1300:
  firing_arcs: ["front", "turret"]

arc-170:
  firing_arcs: ["front", "auxiliary_rear"]

yv-666:
  firing_arcs: ["front", "auxiliary_180"]

lancer:
  firing_arcs: ["front", "mobile"]

kimogila:
  firing_arcs: ["front", "bullseye"]

The advantage of using a list is that it makes it a bit more future-proof just in case FFG decides to release a ship that has multiple firing arcs (like a rear-facing auxiliary and a bullseye firing arc.) We wouldn't have to invent a new auxiliary_rear_bullseye value but could just use the existing values.

In addition, if they'd ever release an upgrade card that adds a firing arc to a ship we could easily leverage the existing grants field, just like we do with slots and stats (slot example, stats example.)

Lets say they release an upgrade card that adds a mobile firing arc:

{
  "name": "Swivel Guns",
  "grants": [
    {
      "type": "firing_arc",
      "name": "mobile"
    }
  ]
}

Equipping that to a Kimogila Fighter would change its firing_arcs value to ["front", "bullseye", "mobile"].

@Mu0n @FreakyDug What do you think? Am I overcomplicating this? One downside is that there won't be a direct mapping to the font. You'd have to check if the array contains auxiliary_rear or turret.

guidokessels commented 7 years ago

To elaborate on my previous post, here's a list of all possible values:

Value Description
front The standard front-facing firing arc found on every ship
auxiliary_rear The rear-facing auxiliary arc found on ships like Firespray-31, TIE/sf, ARC-170, etc.
auxiliary_180 The front-facing 180 degrees auxiliary arc found on ships like YV-666 and Auzituck
bullseye The bullseye firing arc found on ships like Kimogila
turret The 360 degrees firing arc found on ships like YT-1300, K-Wing, etc.
mobile The mobile firing arc found on ships like the Lancer-class Pursuit Craft

How do we represent the VCX-100 special firing arc, Nera Dantels' 360° Torpedo arc and Moralo Eval's 180° Cannon arc?

One way would be to use the grants structure and do something like this:

Nera Dantels
  "grants": [
    {
      "type": "firing_arc",
      "name": "turret",
      "slot": "Torpedo"
    }
  ]

Moralo Eval
  "grants": [
    {
      "type": "firing_arc",
      "name": "auxiliary_180",
      "slot": "Cannon"
    }
  ]

All VCX-100 pilots
  "grants": [
    {
      "type": "firing_arc",
      "name": "auxiliary_rear",
      "slot": "Torpedo"
    }
  ]
philipdouglas commented 7 years ago

I think that approach makes sense, and looks like it should cope with anything else FFG cook up. I can infer the correct icons from those lists and someone building something that actually models the ships has all the information they need.

The VCX rear arc would need to be a different value to auxiliary_rear to indicate it can only shoot torps backwards.

guidokessels commented 7 years ago

The VCX rear arc would need to be a different value to auxiliary_rear to indicate it can only shoot torps backwards.

@FreakyDug Adding the following to all VCX-100 pilots should work, no?

"grants": [
    {
      "type": "firing_arc",
      "name": "auxiliary_rear",
      "slot": "Torpedo"
    }
  ]

The auxiliary_rear arc is the one found on Firespray-31, which is the same as the special arc on the Ghost. By adding the slot restriction we indicate that it can only be used with Torpedo weapons.

philipdouglas commented 7 years ago

Oh right, yeah. Sorry, I didn't read your second update properly.