|
73 | 73 | { |
74 | 74 | "include": "#UnitSpecificSounds" |
75 | 75 | }, |
| 76 | + { |
| 77 | + "include": "#UnitSpecificFX" |
| 78 | + }, |
76 | 79 | { |
77 | 80 | "include": "#modules" |
78 | 81 | }, |
79 | 82 | { |
80 | | - "include": "#addmodule-block" |
| 83 | + "include": "#AddModule-block" |
81 | 84 | }, |
82 | 85 | { |
83 | 86 | "include": "#inline-removemodule" |
|
205 | 208 | } |
206 | 209 | ] |
207 | 210 | }, |
208 | | - "addmodule-block": { |
| 211 | + "UnitSpecificFX": { |
| 212 | + "begin": "\\s*\\b(UnitSpecificFX)\\b", |
| 213 | + "beginCaptures": { |
| 214 | + "1": { |
| 215 | + "name": "keyword.control.ini" |
| 216 | + } |
| 217 | + }, |
| 218 | + "end": "\\s*\\b(End)\\b", |
| 219 | + "endCaptures": { |
| 220 | + "1": { |
| 221 | + "name": "keyword.control.ini" |
| 222 | + } |
| 223 | + }, |
| 224 | + "patterns": [ |
| 225 | + { |
| 226 | + "include": "#assignment" |
| 227 | + }, |
| 228 | + { |
| 229 | + "include": "#inline-comment" |
| 230 | + } |
| 231 | + ] |
| 232 | + }, |
| 233 | + "AddModule-block": { |
209 | 234 | "begin": "\\s*\\b(AddModule)\\b", |
210 | 235 | "beginCaptures": { |
211 | 236 | "1": { |
|
256 | 281 | }, |
257 | 282 | { |
258 | 283 | "include": "#behavior-block" |
| 284 | + }, |
| 285 | + { |
| 286 | + "include": "#clientupdate-block" |
| 287 | + } |
| 288 | + ] |
| 289 | + }, |
| 290 | + "clientupdate-block": { |
| 291 | + "begin": "\\s*\\b(ClientUpdate)\\b\\s*(\\=)\\s*([a-zA-Z]\\w+)\\s*([a-zA-Z][\\w_]+)", |
| 292 | + "beginCaptures": { |
| 293 | + "1": { |
| 294 | + "name": "keyword.control.ini" |
| 295 | + }, |
| 296 | + "2": { |
| 297 | + "name": "keyword.operator.assignment.ini" |
| 298 | + }, |
| 299 | + "3": { |
| 300 | + "name": "entity.name.function" |
| 301 | + }, |
| 302 | + "4": { |
| 303 | + "name": "storage.type.ini" |
| 304 | + } |
| 305 | + }, |
| 306 | + "end": "\\s*\\b(End)\\b", |
| 307 | + "endCaptures": { |
| 308 | + "1": { |
| 309 | + "name": "keyword.control.ini" |
| 310 | + } |
| 311 | + }, |
| 312 | + "patterns": [ |
| 313 | + { |
| 314 | + "include": "#assignment" |
| 315 | + }, |
| 316 | + { |
| 317 | + "include": "#inline-comment" |
259 | 318 | } |
260 | 319 | ] |
261 | 320 | }, |
|
285 | 344 | { |
286 | 345 | "include": "#behavior-turret" |
287 | 346 | }, |
| 347 | + { |
| 348 | + "include": "#behavior-attackareadecal" |
| 349 | + }, |
| 350 | + { |
| 351 | + "include": "#behavior-targetingreticledecal" |
| 352 | + }, |
288 | 353 | { |
289 | 354 | "include": "#assignment" |
290 | 355 | }, |
|
306 | 371 | "name": "keyword.control.ini" |
307 | 372 | } |
308 | 373 | }, |
| 374 | + "patterns": [ |
| 375 | + { |
| 376 | + "include": "#weapon-types-turret" |
| 377 | + }, |
| 378 | + { |
| 379 | + "include": "#assignment" |
| 380 | + }, |
| 381 | + { |
| 382 | + "include": "#inline-comment" |
| 383 | + } |
| 384 | + ] |
| 385 | + }, |
| 386 | + "behavior-attackareadecal": { |
| 387 | + "begin": "\\s*\\b(AttackAreaDecal)\\b", |
| 388 | + "beginCaptures": { |
| 389 | + "1": { |
| 390 | + "name": "keyword.control.ini" |
| 391 | + } |
| 392 | + }, |
| 393 | + "end": "\\s*\\b(End)\\b", |
| 394 | + "endCaptures": { |
| 395 | + "1": { |
| 396 | + "name": "keyword.control.ini" |
| 397 | + } |
| 398 | + }, |
| 399 | + "patterns": [ |
| 400 | + { |
| 401 | + "include": "#assignment" |
| 402 | + }, |
| 403 | + { |
| 404 | + "include": "#inline-comment" |
| 405 | + } |
| 406 | + ] |
| 407 | + }, |
| 408 | + "behavior-targetingreticledecal": { |
| 409 | + "begin": "\\s*\\b(TargetingReticleDecal)\\b", |
| 410 | + "beginCaptures": { |
| 411 | + "1": { |
| 412 | + "name": "keyword.control.ini" |
| 413 | + } |
| 414 | + }, |
| 415 | + "end": "\\s*\\b(End)\\b", |
| 416 | + "endCaptures": { |
| 417 | + "1": { |
| 418 | + "name": "keyword.control.ini" |
| 419 | + } |
| 420 | + }, |
309 | 421 | "patterns": [ |
310 | 422 | { |
311 | 423 | "include": "#assignment" |
|
375 | 487 | { |
376 | 488 | "include": "#drawblock-conditionstate" |
377 | 489 | }, |
| 490 | + { |
| 491 | + "include": "#drawblock-transitionstate" |
| 492 | + }, |
| 493 | + { |
| 494 | + "include": "#drawblock-aliasconditionstate" |
| 495 | + }, |
| 496 | + { |
| 497 | + "include": "#drawblock-ignoreconditionstate" |
| 498 | + }, |
378 | 499 | { |
379 | 500 | "include": "#assignment" |
380 | 501 | }, |
|
426 | 547 | "match": "\\b(NONE|USER_1|USER_2|JAMMED|ATTACKING|WEAPONSET_CRATEUPGRADE_ONE|WEAPONSET_CRATEUPGRADE_TWO|ARMORSET_CRATEUPGRADE_TWO|ARMORSET_CRATEUPGRADE_ONE|PREORDER|STUNNED|STUNNED_FLAILING|EXPLODED_BOUNCING|EXPLODED_FLAILING|CAPTURED|RAISING_FLAG|CONTINUOUS_FIRE_SLOW|CONTINUOUS_FIRE_FAST|CONTINUOUS_FIRE_MEAN|SPECIAL_CHEERING|ARMED|RAPELLING|PARACHUTING|CLIMBING|SPLATTED|BURNED|AFLAME|SMOLDERING|POWER_PLANT_UPGRADING|POWER_PLANT_UPGRADED|OVER_WATER|MOVING|DEPLOYED|UNPACKING|PACKING|JETEXHAUST|JETAFTERBURNER|LOADED|CARRYING|DOCKING_ENDING|DOCKING_ACTIVE|DOCKING_BEGINNING|DOCKING|PANICKING|RADAR_UPGRADED|RADAR_EXTENDED|CONSTRUCTION_COMPLETE|ACTIVELY_CONSTRUCTING|ACTIVELY_BEING_CONSTRUCTED|PARTIALLY_CONSTRUCTED|AWAITING_CONSTRUCTION|DYING|PRONE|FREEFALL|POST_COLLAPSE|TOPPLED|TURRET_ROTATE|RELOADING_A|BETWEEN_FIRING_SHOTS_A|FIRING_A|PREATTACK_A|USING_WEAPON_A|RELOADING_B|BETWEEN_FIRING_SHOTS_B|FIRING_B|PREATTACK_B|USING_WEAPON_B|RELOADING_C|BETWEEN_FIRING_SHOTS_C|FIRING_C|PREATTACK_C|USING_WEAPON_C|DOOR_4_WAITING_TO_CLOSE|DOOR_4_WAITING_OPEN|DOOR_4_CLOSING|DOOR_4_OPENING|DOOR_3_WAITING_TO_CLOSE|DOOR_3_WAITING_OPEN|DOOR_3_CLOSING|DOOR_3_OPENING|DOOR_2_WAITING_TO_CLOSE|DOOR_2_WAITING_OPEN|DOOR_2_CLOSING|DOOR_2_OPENING|DOOR_1_WAITING_TO_CLOSE|DOOR_1_WAITING_OPEN|DOOR_1_CLOSING|DOOR_1_OPENING|WEAPONSET_PLAYER_UPGRADE|WEAPONSET_HERO|WEAPONSET_ELITE|WEAPONSET_VETERAN|ENEMYNEAR|REALLYDAMAGED|RUBBLE|DAMAGED|SNOW|SOLD|DISGUISED|NIGHT|SPECIAL_DAMAGED|BACKCRUSHED|FRONTCRUSHED|SECOND_LIFE|RIDER1|RIDER2|RIDER3|RIDER4|RIDER5|RIDER6|RIDER7|RIDER8|PRISTINE|RIGHT_TO_CENTER|CENTER_TO_RIGHT|LEFT_TO_CENTER|CENTER_TO_LEFT)+", |
427 | 548 | "name": "variable.other.constant.ini" |
428 | 549 | }, |
| 550 | + { |
| 551 | + "include": "#transitionkey-assignment" |
| 552 | + }, |
| 553 | + { |
| 554 | + "include": "#assignment" |
| 555 | + }, |
| 556 | + { |
| 557 | + "include": "#inline-comment" |
| 558 | + } |
| 559 | + ] |
| 560 | + }, |
| 561 | + "drawblock-transitionstate": { |
| 562 | + "begin": "\\s*\\b(TransitionState)\\b\\s*(\\=)\\s*(\\b(NONE|DOWN_DEFAULT|UP_DAY|UP_NIGHT|UP_SNOWNIGHT|UP_SNOW)|[a-zA-Z][\\w_\\-]+| )+", |
| 563 | + "beginCaptures": { |
| 564 | + "1": { |
| 565 | + "name": "keyword.control.ini" |
| 566 | + }, |
| 567 | + "2": { |
| 568 | + "name": "keyword.operator.assignment.ini" |
| 569 | + } |
| 570 | + }, |
| 571 | + "name": "variable.other.constant.ini", |
| 572 | + "end": "\\s*\\b(End)\\b", |
| 573 | + "endCaptures": { |
| 574 | + "1": { |
| 575 | + "name": "keyword.control.ini" |
| 576 | + } |
| 577 | + }, |
| 578 | + "patterns": [ |
429 | 579 | { |
430 | 580 | "include": "#assignment" |
431 | 581 | }, |
|
434 | 584 | } |
435 | 585 | ] |
436 | 586 | }, |
| 587 | + "drawblock-aliasconditionstate": { |
| 588 | + "begin": "\\s*\\b(AliasConditionState)\\s*(=)\\s*", |
| 589 | + "beginCaptures": { |
| 590 | + "1": { |
| 591 | + "name": "keyword.control.ini" |
| 592 | + }, |
| 593 | + "2": { |
| 594 | + "name": "keyword.operator.assignment.ini" |
| 595 | + } |
| 596 | + }, |
| 597 | + "end": "(?!\\G)", |
| 598 | + "patterns": [ |
| 599 | + { |
| 600 | + "match": "(\\s*\\b(NONE|USER_1|USER_2|JAMMED|ATTACKING|WEAPONSET_CRATEUPGRADE_ONE|WEAPONSET_CRATEUPGRADE_TWO|ARMORSET_CRATEUPGRADE_TWO|ARMORSET_CRATEUPGRADE_ONE|PREORDER|STUNNED|STUNNED_FLAILING|EXPLODED_BOUNCING|EXPLODED_FLAILING|CAPTURED|RAISING_FLAG|CONTINUOUS_FIRE_SLOW|CONTINUOUS_FIRE_FAST|CONTINUOUS_FIRE_MEAN|SPECIAL_CHEERING|ARMED|RAPELLING|PARACHUTING|CLIMBING|SPLATTED|BURNED|AFLAME|SMOLDERING|POWER_PLANT_UPGRADING|POWER_PLANT_UPGRADED|OVER_WATER|MOVING|DEPLOYED|UNPACKING|PACKING|JETEXHAUST|JETAFTERBURNER|LOADED|CARRYING|DOCKING_ENDING|DOCKING_ACTIVE|DOCKING_BEGINNING|DOCKING|PANICKING|RADAR_UPGRADED|RADAR_EXTENDED|CONSTRUCTION_COMPLETE|ACTIVELY_CONSTRUCTING|ACTIVELY_BEING_CONSTRUCTED|PARTIALLY_CONSTRUCTED|AWAITING_CONSTRUCTION|DYING|PRONE|FREEFALL|POST_COLLAPSE|TOPPLED|TURRET_ROTATE|RELOADING_A|BETWEEN_FIRING_SHOTS_A|FIRING_A|PREATTACK_A|USING_WEAPON_A|RELOADING_B|BETWEEN_FIRING_SHOTS_B|FIRING_B|PREATTACK_B|USING_WEAPON_B|RELOADING_C|BETWEEN_FIRING_SHOTS_C|FIRING_C|PREATTACK_C|USING_WEAPON_C|DOOR_4_WAITING_TO_CLOSE|DOOR_4_WAITING_OPEN|DOOR_4_CLOSING|DOOR_4_OPENING|DOOR_3_WAITING_TO_CLOSE|DOOR_3_WAITING_OPEN|DOOR_3_CLOSING|DOOR_3_OPENING|DOOR_2_WAITING_TO_CLOSE|DOOR_2_WAITING_OPEN|DOOR_2_CLOSING|DOOR_2_OPENING|DOOR_1_WAITING_TO_CLOSE|DOOR_1_WAITING_OPEN|DOOR_1_CLOSING|DOOR_1_OPENING|WEAPONSET_PLAYER_UPGRADE|WEAPONSET_HERO|WEAPONSET_ELITE|WEAPONSET_VETERAN|ENEMYNEAR|REALLYDAMAGED|RUBBLE|DAMAGED|SNOW|SOLD|DISGUISED|NIGHT|SPECIAL_DAMAGED|BACKCRUSHED|FRONTCRUSHED|SECOND_LIFE|RIDER1|RIDER2|RIDER3|RIDER4|RIDER5|RIDER6|RIDER7|RIDER8|PRISTINE|RIGHT_TO_CENTER|CENTER_TO_RIGHT|LEFT_TO_CENTER|CENTER_TO_LEFT))+", |
| 601 | + "name": "variable.other.constant.ini" |
| 602 | + }, |
| 603 | + { |
| 604 | + "include": "#inline-comment" |
| 605 | + } |
| 606 | + ] |
| 607 | + }, |
| 608 | + "drawblock-ignoreconditionstate": { |
| 609 | + "begin": "\\s*\\b(IgnoreConditionStates)\\s*(=)(\\s*[a-zA-Z][\\w_]+)+", |
| 610 | + "beginCaptures": { |
| 611 | + "1": { |
| 612 | + "name": "keyword.control.ini" |
| 613 | + }, |
| 614 | + "2": { |
| 615 | + "name": "keyword.operator.assignment.ini" |
| 616 | + } |
| 617 | + }, |
| 618 | + "name": "variable.other.constant.ini", |
| 619 | + "end": "(?!\\G)", |
| 620 | + "patterns": [ |
| 621 | + { |
| 622 | + "include": "#inline-comment" |
| 623 | + } |
| 624 | + ] |
| 625 | + }, |
| 626 | + "transitionkey-assignment": { |
| 627 | + "begin": "(^[ \\t]+)?(TransitionKey)\\s*(\\=)(\\s*[a-zA-Z][\\w_]+)+", |
| 628 | + "beginCaptures": { |
| 629 | + "2": { |
| 630 | + "name": "variable.parameter" |
| 631 | + }, |
| 632 | + "3": { |
| 633 | + "name": "keyword.operator.assignment.ini" |
| 634 | + } |
| 635 | + }, |
| 636 | + "name": "variable.other.constant.ini", |
| 637 | + "end": "(?!\\G)", |
| 638 | + "patterns": [ |
| 639 | + { |
| 640 | + "include": "#inline-comment" |
| 641 | + } |
| 642 | + ] |
| 643 | + }, |
437 | 644 | "assignment": { |
438 | | - "begin": "(^[ \\t]+)?([a-zA-Z]\\w+)\\s*(\\=)\\s*", |
| 645 | + "begin": "(^[ \\t]+)?([a-zA-Z][\\w%]+)\\s*(\\=)\\s*", |
439 | 646 | "beginCaptures": { |
440 | 647 | "2": { |
441 | 648 | "name": "variable.parameter" |
|
470 | 677 | ] |
471 | 678 | }, |
472 | 679 | "locomotor-types": { |
473 | | - "match": "\\s*\\b(SET_NORMAL|SET_SUPERSONIC|SET_SLUGGISH|SET_TAXIING|SET_PANIC|SET_WANDER|SET_FREEFALL|SET_NORMAL_UPGRADED)\\s*([a-zA-Z]\\w+)", |
474 | | - "captures": { |
| 680 | + "begin": "\\s*\\b(SET_NORMAL|SET_SUPERSONIC|SET_SLUGGISH|SET_TAXIING|SET_PANIC|SET_WANDER|SET_FREEFALL|SET_NORMAL_UPGRADED)\\s*", |
| 681 | + "beginCaptures": { |
475 | 682 | "1": { |
476 | 683 | "name": "variable.other.constant.ini" |
477 | 684 | }, |
478 | 685 | "2": { |
479 | 686 | "name": "string.unquoted.ini" |
480 | 687 | } |
481 | | - } |
| 688 | + }, |
| 689 | + "end": "(?!\\G)", |
| 690 | + "patterns": [ |
| 691 | + { |
| 692 | + "include": "#string" |
| 693 | + } |
| 694 | + ] |
482 | 695 | }, |
483 | | - "weapon-types": { |
484 | | - "match": "\\b(PRIMARY|SECONDARY|TERTIARY)", |
| 696 | + "weapon-types-turret": { |
| 697 | + "match": "\\s*([a-zA-Z][\\w%]+)\\s*(\\=)(\\s*\\b(PRIMARY|SECONDARY|TERTIARY))+", |
| 698 | + "captures": { |
| 699 | + "1": { |
| 700 | + "name": "variable.parameter" |
| 701 | + }, |
| 702 | + "2": { |
| 703 | + "name": "keyword.operator.assignment.ini" |
| 704 | + } |
| 705 | + }, |
485 | 706 | "name": "variable.other.constant.ini" |
486 | 707 | }, |
| 708 | + "weapon-types": { |
| 709 | + "begin": "(\\s*\\b(PRIMARY|SECONDARY|TERTIARY))+\\s*", |
| 710 | + "beginCaptures": { |
| 711 | + "1": { |
| 712 | + "name": "variable.other.constant.ini" |
| 713 | + } |
| 714 | + }, |
| 715 | + "end": "(?!\\G)", |
| 716 | + "patterns": [ |
| 717 | + { |
| 718 | + "include": "#string" |
| 719 | + } |
| 720 | + ] |
| 721 | + }, |
487 | 722 | "string": { |
488 | 723 | "begin": "(^[ \\t]+)?(?=[a-zA-Z])", |
489 | 724 | "beginCaptures": { |
|
494 | 729 | "end": "(?!\\G)", |
495 | 730 | "patterns": [ |
496 | 731 | { |
497 | | - "match": "[a-zA-Z][ \\._a-zA-Z0-9:\\+\\-]*", |
| 732 | + "match": "[a-zA-Z][ \\._a-zA-Z0-9:\\+\\-%]*", |
498 | 733 | "name": "string.unquoted.ini" |
499 | 734 | } |
500 | 735 | ] |
|
525 | 760 | ] |
526 | 761 | }, |
527 | 762 | "double": { |
528 | | - "match": "-?\\d[(\\.\\d]*( \\d[(\\.\\d]*)*", |
| 763 | + "match": "-?\\d[\\.\\d%fF]*( \\d[\\.\\d%fF]*)*", |
529 | 764 | "name": "constant.numeric.ini" |
530 | 765 | }, |
531 | 766 | "boolean": { |
|
0 commit comments