ethanmoffat / EndlessClient

An open source client for Endless Online written in C#
MIT License
34 stars 16 forks source link

Weapon swishes #218

Closed ethanmoffat closed 9 months ago

ethanmoffat commented 1 year ago

Implement weapon swishes. Vanilla client shows a slash graphic on attack frame 2. Different graphics use different color slashes.

ethanmoffat commented 1 year ago

Weapon swish info is hard-coded. SFX for weapons are also in here as well: https://docs.google.com/spreadsheets/d/1sV3_S2HeppG9i0voWAQ_5i1Cee1qyKtI1nww5qZ8TeQ/edit#gid=0

miou-gh commented 1 year ago

Weapon swish info is hard-coded. SFX for weapons are also in here as well: https://docs.google.com/spreadsheets/d/1sV3_S2HeppG9i0voWAQ_5i1Cee1qyKtI1nww5qZ8TeQ/edit#gid=0

Tuple-ified:

(int gfxId, int? slashId, int[] sfxId, int? ranged, string weaponName)[] weaponData = new (int gfxId, int? slashId, int[] sfxIds, int? ranged, string weaponName)[] {
        (gfxId:   0,  slashId: null,  sfxIds: new int[] { 10 }, null, "fist"),
        (gfxId:   1,  slashId: 3,     sfxIds: new int[] {}, null, "wood axe"),
        (gfxId:   2,  slashId: null,  sfxIds: new int[] {}, null, "sai"),
        (gfxId:   3,  slashId: 2,     sfxIds: new int[] {}, null, "dragon blade"),
        (gfxId:   4,  slashId: null,  sfxIds: new int[] {}, null, "dagger"),
        (gfxId:   5,  slashId: 2,     sfxIds: new int[] {}, null, "spear"),
        (gfxId:   6,  slashId: null,  sfxIds: new int[] {}, null, "saber"),
        (gfxId:   7,  slashId: null,  sfxIds: new int[] {}, null, "staff"),
        (gfxId:   8,  slashId: null,  sfxIds: new int[] {}, null, "book"),
        (gfxId:   9,  slashId: 3,     sfxIds: new int[] {}, null, "mace"),
        (gfxId:   10, slashId: null,  sfxIds: new int[] {}, null, "spirit star"),
        (gfxId:   11, slashId: null,  sfxIds: new int[] {}, null, "throw axe"),
        (gfxId:   12, slashId: 2,     sfxIds: new int[] {}, null, "dark katana"),
        (gfxId:   13, slashId: null,  sfxIds: new int[] {}, null, "short sword"),
        (gfxId:   14, slashId: 2,     sfxIds: new int[] {}, null, "broadsword"),
        (gfxId:   15, slashId: null,  sfxIds: new int[] {}, null, "broom"),
        (gfxId:   16, slashId: null,  sfxIds: new int[] {}, null, "ninchackus"),
        (gfxId:   17, slashId: null,  sfxIds: new int[] {}, null, "ancient star"),
        (gfxId:   18, slashId: 2,     sfxIds: new int[] {}, null, "battle axe"),
        (gfxId:   19, slashId: 2,     sfxIds: new int[] {}, null, "ancient sword"),
        (gfxId:   20, slashId: null,  sfxIds: new int[] {}, null, "luna staff"),
        (gfxId:   21, slashId: 2,     sfxIds: new int[] {}, null, "lance"),
        (gfxId:   22, slashId: null,  sfxIds: new int[] {}, null, "aura staff"),
        (gfxId:   23, slashId: null,  sfxIds: new int[] {}, null, "forest staff"),
        (gfxId:   24, slashId: 1,     sfxIds: new int[] {}, null, "normal sword"),
        (gfxId:   25, slashId: null,  sfxIds: new int[] {}, null, "jewel staff"),
        (gfxId:   26, slashId: null,  sfxIds: new int[] {}, null, "thor's hammer"),
        (gfxId:   27, slashId: 2,     sfxIds: new int[] {}, null, "light katana"),
        (gfxId:   28, slashId: 2,     sfxIds: new int[] {}, null, "polearm"),
        (gfxId:   29, slashId: null,  sfxIds: new int[] {}, null, "sickle"),
        (gfxId:   30, slashId: 2,     sfxIds: new int[] {}, null, "trident"),
        (gfxId:   31, slashId: 2,     sfxIds: new int[] {}, null, "warlock sword"),
        (gfxId:   32, slashId: 2,     sfxIds: new int[] {}, null, "whip"),
        (gfxId:   33, slashId: 5,     sfxIds: new int[] {}, null, "ultima sword"),
        (gfxId:   34, slashId: 5,     sfxIds: new int[] {}, null, "ice blade"),
        (gfxId:   35, slashId: 1,     sfxIds: new int[] {}, null, "gold defender"),
        (gfxId:   36, slashId: 4,     sfxIds: new int[] {}, null, "lotus sword"),
        (gfxId:   37, slashId: 4,     sfxIds: new int[] {}, null, "cristal sword"),
        (gfxId:   38, slashId: 5,     sfxIds: new int[] {}, null, "killing edge"),
        (gfxId:   39, slashId: 7,     sfxIds: new int[] { 30 }, null, "dark blade"),
        (gfxId:   40, slashId: 7,     sfxIds: new int[] { 30 }, null, "reaper scyth"),
        (gfxId:   41, slashId: 1,     sfxIds: new int[] {}, null, "crescent staff"),
        (gfxId:   42, slashId: null,  sfxIds: new int[] { 38 }, 1, "bow"),
        (gfxId:   43, slashId: null,  sfxIds: new int[] { 38 }, 1, "crossbow"),
        (gfxId:   44, slashId: 8,     sfxIds: new int[] { 30 }, null, "reaper"),
        (gfxId:   45, slashId: null,  sfxIds: new int[] { }, null, "hockey stick"),
        (gfxId:   46, slashId: 5,     sfxIds: new int[] { }, null, "twin blades"),
        (gfxId:   47, slashId: 1,     sfxIds: new int[] { }, null, "lefor mace"),
        (gfxId:   48, slashId: null,  sfxIds: new int[] { }, null, "cava staff"),
        (gfxId:   49, slashId: null,  sfxIds: new int[] { 44, 45, 46 }, 1, "harp"),
        (gfxId:   50, slashId: null,  sfxIds: new int[] { 47, 48, 49 }, 1, "guitar"),
        (gfxId:   51, slashId: 5,     sfxIds: new int[] { }, null, "battle spear"),
        (gfxId:   52, slashId: 1,     sfxIds: new int[] { }, null, "flail"),
        (gfxId:   53, slashId: 1,     sfxIds: new int[] { }, null, "war axe"),
        (gfxId:   54, slashId: 1,     sfxIds: new int[] { }, null, "gastro"),
        (gfxId:   55, slashId: 7,     sfxIds: new int[] { 30 }, null, "ablo staff"),
        (gfxId:   56, slashId: 1,     sfxIds: new int[] { }, null, "fluon sword"),
        (gfxId:   57, slashId: 2,     sfxIds: new int[] { }, null, "rapier"),
        (gfxId:   58, slashId: null,  sfxIds: new int[] { 53 }, 1, "gun"),
        (gfxId:   59, slashId: null,  sfxIds: new int[] { }, null, "knob staff"),
        (gfxId:   60, slashId: null,  sfxIds: new int[] { }, null, "fladdat staff"),
        (gfxId:   61, slashId: null,  sfxIds: new int[] { }, null, "gabrasto"),
        (gfxId:   62, slashId: null,  sfxIds: new int[] { }, null, "battle spear 2"),
        (gfxId:   63, slashId: null,  sfxIds: new int[] { }, null, "lens of truth"),
        (gfxId:   64, slashId: null,  sfxIds: new int[] { }, null, "chopper"),
        (gfxId:   65, slashId: 3,     sfxIds: new int[] { }, null, "adger"),
        (gfxId:   66, slashId: 1,     sfxIds: new int[] { }, null, "chains"),
        (gfxId:   67, slashId: 2,     sfxIds: new int[] { }, null, "mitova"),
        (gfxId:   68, slashId: 3,     sfxIds: new int[] { }, null, "merhawk"),
        (gfxId:   69, slashId: null,  sfxIds: new int[] { }, null, "kontra"),
        (gfxId:   70, slashId: null,  sfxIds: new int[] { }, null, "jack spear"),
        (gfxId:   71, slashId: null,  sfxIds: new int[] { }, null, "bazar staff"),
        (gfxId:   72, slashId: null,  sfxIds: new int[] { }, null, "saw blade"),
        (gfxId:   73, slashId: null,  sfxIds: new int[] { 38 }, 1, "scav bow"),
        (gfxId:   74, slashId: null,  sfxIds: new int[] { }, null, "fan"),
        (gfxId:   75, slashId: null,  sfxIds: new int[] { }, null, "cursed gladius"),
        (gfxId:   76, slashId: null,  sfxIds: new int[] { }, null, "corum"),
        (gfxId:   77, slashId: null,  sfxIds: new int[] { }, null, "skullmorne"),
        (gfxId:   78, slashId: null,  sfxIds: new int[] { }, null, "amaceng"),
        (gfxId:   79, slashId: null,  sfxIds: new int[] { }, null, "bofiren book"),
        (gfxId:   80, slashId: null,  sfxIds: new int[] { }, null, "diablo helbred"),
        (gfxId:   81, slashId: null,  sfxIds: new int[] { }, null, "carrys seer"),
        };
ethanmoffat commented 10 months ago

no swish:

gfx:

empty values: