Compare commits
No commits in common. "main" and "luneraria/s3-strategie" have entirely different histories.
main
...
luneraria/
|
|
@ -1,596 +0,0 @@
|
|||
{
|
||||
"id": "brunhild",
|
||||
"group": "Characters",
|
||||
"source": "tools/meshy/build_figure.py",
|
||||
"exporter_version": 11,
|
||||
"blender": "5.2.2 LTS",
|
||||
"fbx_settings": {
|
||||
"use_selection": true,
|
||||
"use_visible": false,
|
||||
"use_active_collection": false,
|
||||
"global_scale": 1.0,
|
||||
"apply_unit_scale": true,
|
||||
"apply_scale_options": "FBX_SCALE_UNITS",
|
||||
"axis_forward": "Y",
|
||||
"axis_up": "Z",
|
||||
"bake_space_transform": false,
|
||||
"object_types": [
|
||||
"ARMATURE",
|
||||
"EMPTY",
|
||||
"MESH"
|
||||
],
|
||||
"use_mesh_modifiers": true,
|
||||
"use_mesh_modifiers_render": true,
|
||||
"mesh_smooth_type": "OFF",
|
||||
"use_subsurf": false,
|
||||
"use_mesh_edges": false,
|
||||
"use_tspace": false,
|
||||
"use_triangles": false,
|
||||
"colors_type": "LINEAR",
|
||||
"prioritize_active_color": true,
|
||||
"use_custom_props": false,
|
||||
"add_leaf_bones": false,
|
||||
"primary_bone_axis": "Y",
|
||||
"secondary_bone_axis": "X",
|
||||
"use_armature_deform_only": true,
|
||||
"armature_nodetype": "NULL",
|
||||
"bake_anim": true,
|
||||
"bake_anim_use_all_bones": true,
|
||||
"bake_anim_use_nla_strips": false,
|
||||
"bake_anim_use_all_actions": true,
|
||||
"bake_anim_force_startend_keying": true,
|
||||
"bake_anim_step": 1.0,
|
||||
"bake_anim_simplify_factor": 0.0,
|
||||
"path_mode": "STRIP",
|
||||
"embed_textures": false,
|
||||
"batch_mode": "OFF"
|
||||
},
|
||||
"checks": [
|
||||
{
|
||||
"check": "turn_applied",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "units_metric",
|
||||
"ok": true,
|
||||
"detail": "METRIC"
|
||||
},
|
||||
{
|
||||
"check": "unit_scale_1",
|
||||
"ok": true,
|
||||
"detail": "1.0"
|
||||
},
|
||||
{
|
||||
"check": "no_negative_scale",
|
||||
"ok": true,
|
||||
"detail": "{}"
|
||||
},
|
||||
{
|
||||
"check": "object_scale_1",
|
||||
"ok": true,
|
||||
"detail": "{}"
|
||||
},
|
||||
{
|
||||
"check": "mesh_names_unique",
|
||||
"ok": true,
|
||||
"detail": "['BrunhildBody_LOD0', 'BrunhildBody_LOD1', 'BrunhildSpeer_LOD0', 'BrunhildSpeer_LOD1']"
|
||||
},
|
||||
{
|
||||
"check": "material_slots_filled",
|
||||
"ok": true,
|
||||
"detail": "{}"
|
||||
},
|
||||
{
|
||||
"check": "normals_unit_length",
|
||||
"ok": true,
|
||||
"detail": "{}"
|
||||
},
|
||||
{
|
||||
"check": "no_blend_shapes",
|
||||
"ok": true,
|
||||
"detail": "{}"
|
||||
},
|
||||
{
|
||||
"check": "triangles_match_godot",
|
||||
"ok": true,
|
||||
"detail": "28706 fbx / 28706 godot"
|
||||
},
|
||||
{
|
||||
"check": "one_armature",
|
||||
"ok": true,
|
||||
"detail": "['BrunhildRig']"
|
||||
},
|
||||
{
|
||||
"check": "single_root_bone",
|
||||
"ok": true,
|
||||
"detail": "['Root']"
|
||||
},
|
||||
{
|
||||
"check": "root_bone_name",
|
||||
"ok": true,
|
||||
"detail": "['Root']"
|
||||
},
|
||||
{
|
||||
"check": "bone_count_match_godot",
|
||||
"ok": true,
|
||||
"detail": "25 / 25"
|
||||
},
|
||||
{
|
||||
"check": "bone_names_portable",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "skinned_meshes_present",
|
||||
"ok": true,
|
||||
"detail": ""
|
||||
},
|
||||
{
|
||||
"check": "clips_match_godot",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "required_clips_present",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "roundtrip_mesh_names",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "roundtrip_triangles",
|
||||
"ok": true,
|
||||
"detail": "28706 / 28706"
|
||||
},
|
||||
{
|
||||
"check": "roundtrip_materials",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "roundtrip_bones",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "roundtrip_clips",
|
||||
"ok": true,
|
||||
"detail": "['ability', 'attack_a', 'attack_b', 'death', 'hit', 'idle', 'ultimate', 'walk']"
|
||||
}
|
||||
],
|
||||
"generator": {
|
||||
"clips": {
|
||||
"idle": {
|
||||
"source": "Idle",
|
||||
"frames": [
|
||||
0.0,
|
||||
96.0
|
||||
],
|
||||
"seconds": 4.0,
|
||||
"loop": true,
|
||||
"contact_seconds": -1.0
|
||||
},
|
||||
"walk": {
|
||||
"source": "Walk_Fight_Forward",
|
||||
"frames": [
|
||||
0.0,
|
||||
40.0
|
||||
],
|
||||
"seconds": 1.2917,
|
||||
"loop": true,
|
||||
"contact_seconds": -1.0
|
||||
},
|
||||
"attack_a": {
|
||||
"source": "Thrust_Slash",
|
||||
"frames": [
|
||||
4,
|
||||
30
|
||||
],
|
||||
"seconds": 0.9583,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.516
|
||||
},
|
||||
"attack_b": {
|
||||
"source": "Charged_Upward_Slash",
|
||||
"frames": [
|
||||
0,
|
||||
45
|
||||
],
|
||||
"seconds": 1.0,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.5556
|
||||
},
|
||||
"hit": {
|
||||
"source": "Hit_Reaction",
|
||||
"frames": [
|
||||
0,
|
||||
14
|
||||
],
|
||||
"seconds": 0.5,
|
||||
"loop": false,
|
||||
"contact_seconds": -1.0
|
||||
},
|
||||
"ability": {
|
||||
"source": "Over_Shoulder_Throw",
|
||||
"frames": [
|
||||
50,
|
||||
100
|
||||
],
|
||||
"seconds": 1.0,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.64
|
||||
},
|
||||
"death": {
|
||||
"source": "Shot_and_Fall_Backward",
|
||||
"frames": [
|
||||
0.0,
|
||||
84.0
|
||||
],
|
||||
"seconds": 2.4167,
|
||||
"loop": false,
|
||||
"contact_seconds": -1.0
|
||||
},
|
||||
"ultimate": {
|
||||
"source": "Basic_Jump",
|
||||
"frames": [
|
||||
20,
|
||||
80
|
||||
],
|
||||
"seconds": 1.2917,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.775
|
||||
}
|
||||
},
|
||||
"textures": {
|
||||
"glow_share": 0.0,
|
||||
"palette_gains": {},
|
||||
"size": [
|
||||
2048,
|
||||
2048
|
||||
]
|
||||
},
|
||||
"unit": 0.009999999776482582,
|
||||
"lod": {
|
||||
"lod0_triangles": 20663,
|
||||
"lod1_triangles": 4999,
|
||||
"lod1_vertices": 2468,
|
||||
"welded_triangles": 20663,
|
||||
"lod0_screen": 0.2
|
||||
},
|
||||
"props": [
|
||||
{
|
||||
"name": "BrunhildSpeer",
|
||||
"triangles": 2545,
|
||||
"textures": {
|
||||
"glow_share": 0.0,
|
||||
"palette_gains": {},
|
||||
"size": [
|
||||
2048,
|
||||
2048
|
||||
]
|
||||
},
|
||||
"lod": {
|
||||
"lod0_triangles": 2545,
|
||||
"lod1_triangles": 499,
|
||||
"lod1_vertices": 252,
|
||||
"welded_triangles": 2545,
|
||||
"lod0_screen": 0.2
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"inputs_sha256": {
|
||||
"tools/meshy/brunhild/figure.json": "19ccf5ca996bba99f8681c8b02ce221f7700175f7d66b820c5a953017e2305d9",
|
||||
"assets-source/meshy/brunhild/brunhild-skelett.glb": "f089ffcec953c76f03997cdc19f3eb2f126b7199e9698e4e0a9d5654fca1dd18",
|
||||
"assets-source/meshy/brunhild/brunhild-animationen.glb": "aca3433fec67155457f05046880e30772f9fba21ff1789912acf700f26ca7bfc",
|
||||
"assets-source/meshy/brunhild/brunhild-speer.glb": "a7637375a32752913dc3929fe099d3c6e2e5d75a0f0665d0244af1637459f364"
|
||||
},
|
||||
"source_sha256": "5a0df3fc4ab4228c0b631a038098db9e79c833ae69ddd2457a8062eb1b493283",
|
||||
"removed_modifiers": 0,
|
||||
"kind": "skinned",
|
||||
"fps": 24.0,
|
||||
"objects": 5,
|
||||
"meshes": {
|
||||
"BrunhildBody_LOD0": {
|
||||
"mesh": "BrunhildBody_LOD0",
|
||||
"triangles": 20663,
|
||||
"vertices": 28942,
|
||||
"ngons": 0,
|
||||
"materials": [
|
||||
"AI_Brunhild"
|
||||
],
|
||||
"uv_layers": [
|
||||
"UVMap"
|
||||
],
|
||||
"color_attributes": [],
|
||||
"active_color": null,
|
||||
"custom_normals": true,
|
||||
"normals_unit_length": true,
|
||||
"bad_normals": 0,
|
||||
"degenerate_triangles": 0,
|
||||
"shape_keys": 0,
|
||||
"skinned": true,
|
||||
"scale": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
],
|
||||
"bounds_unity": {
|
||||
"min": [
|
||||
-0.4473,
|
||||
0.0,
|
||||
-0.2325
|
||||
],
|
||||
"max": [
|
||||
0.4473,
|
||||
1.8,
|
||||
0.2325
|
||||
]
|
||||
}
|
||||
},
|
||||
"BrunhildSpeer_LOD0": {
|
||||
"mesh": "BrunhildSpeer_LOD0",
|
||||
"triangles": 2545,
|
||||
"vertices": 3856,
|
||||
"ngons": 0,
|
||||
"materials": [
|
||||
"AI_BrunhildSpeer"
|
||||
],
|
||||
"uv_layers": [
|
||||
"UVMap"
|
||||
],
|
||||
"color_attributes": [],
|
||||
"active_color": null,
|
||||
"custom_normals": true,
|
||||
"normals_unit_length": true,
|
||||
"bad_normals": 0,
|
||||
"degenerate_triangles": 0,
|
||||
"shape_keys": 0,
|
||||
"skinned": true,
|
||||
"scale": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
],
|
||||
"bounds_unity": {
|
||||
"min": [
|
||||
0.1895,
|
||||
0.7103,
|
||||
-0.6358
|
||||
],
|
||||
"max": [
|
||||
0.5065,
|
||||
1.2324,
|
||||
1.2914
|
||||
]
|
||||
}
|
||||
},
|
||||
"BrunhildBody_LOD1": {
|
||||
"mesh": "BrunhildBody_LOD1",
|
||||
"triangles": 4999,
|
||||
"vertices": 2468,
|
||||
"ngons": 0,
|
||||
"materials": [
|
||||
"AI_Brunhild"
|
||||
],
|
||||
"uv_layers": [
|
||||
"UVMap"
|
||||
],
|
||||
"color_attributes": [],
|
||||
"active_color": null,
|
||||
"custom_normals": false,
|
||||
"normals_unit_length": true,
|
||||
"bad_normals": 0,
|
||||
"degenerate_triangles": 0,
|
||||
"shape_keys": 0,
|
||||
"skinned": true,
|
||||
"scale": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
],
|
||||
"bounds_unity": {
|
||||
"min": [
|
||||
-0.4478,
|
||||
0.0007,
|
||||
-0.2335
|
||||
],
|
||||
"max": [
|
||||
0.4466,
|
||||
1.8008,
|
||||
0.2343
|
||||
]
|
||||
}
|
||||
},
|
||||
"BrunhildSpeer_LOD1": {
|
||||
"mesh": "BrunhildSpeer_LOD1",
|
||||
"triangles": 499,
|
||||
"vertices": 252,
|
||||
"ngons": 0,
|
||||
"materials": [
|
||||
"AI_BrunhildSpeer"
|
||||
],
|
||||
"uv_layers": [
|
||||
"UVMap"
|
||||
],
|
||||
"color_attributes": [],
|
||||
"active_color": null,
|
||||
"custom_normals": false,
|
||||
"normals_unit_length": true,
|
||||
"bad_normals": 0,
|
||||
"degenerate_triangles": 0,
|
||||
"shape_keys": 0,
|
||||
"skinned": true,
|
||||
"scale": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
],
|
||||
"bounds_unity": {
|
||||
"min": [
|
||||
0.189,
|
||||
0.7108,
|
||||
-0.6379
|
||||
],
|
||||
"max": [
|
||||
0.5086,
|
||||
1.2317,
|
||||
1.2931
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"armatures": {
|
||||
"BrunhildRig": {
|
||||
"bones": [
|
||||
"Root",
|
||||
"Hips",
|
||||
"Spine02",
|
||||
"Spine01",
|
||||
"Spine",
|
||||
"neck",
|
||||
"Head",
|
||||
"head_end",
|
||||
"headfront",
|
||||
"LeftShoulder",
|
||||
"LeftArm",
|
||||
"LeftForeArm",
|
||||
"LeftHand",
|
||||
"RightShoulder",
|
||||
"RightArm",
|
||||
"RightForeArm",
|
||||
"RightHand",
|
||||
"LeftUpLeg",
|
||||
"LeftLeg",
|
||||
"LeftFoot",
|
||||
"LeftToeBase",
|
||||
"RightUpLeg",
|
||||
"RightLeg",
|
||||
"RightFoot",
|
||||
"RightToeBase"
|
||||
],
|
||||
"roots": [
|
||||
"Root"
|
||||
]
|
||||
}
|
||||
},
|
||||
"empties": {},
|
||||
"bounds_unity": {
|
||||
"min": [
|
||||
-0.4478,
|
||||
0.0,
|
||||
-0.6379
|
||||
],
|
||||
"max": [
|
||||
0.5086,
|
||||
1.8008,
|
||||
1.2931
|
||||
]
|
||||
},
|
||||
"clips": [
|
||||
{
|
||||
"name": "ability",
|
||||
"frames": [
|
||||
0.0,
|
||||
24.0
|
||||
],
|
||||
"seconds": 1.0,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.64
|
||||
},
|
||||
{
|
||||
"name": "attack_a",
|
||||
"frames": [
|
||||
0.0,
|
||||
23.0
|
||||
],
|
||||
"seconds": 0.9583,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.516
|
||||
},
|
||||
{
|
||||
"name": "attack_b",
|
||||
"frames": [
|
||||
0.0,
|
||||
24.0
|
||||
],
|
||||
"seconds": 1.0,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.5556
|
||||
},
|
||||
{
|
||||
"name": "death",
|
||||
"frames": [
|
||||
0.0,
|
||||
58.0
|
||||
],
|
||||
"seconds": 2.4167,
|
||||
"loop": false,
|
||||
"contact_seconds": -1.0
|
||||
},
|
||||
{
|
||||
"name": "hit",
|
||||
"frames": [
|
||||
0.0,
|
||||
12.0
|
||||
],
|
||||
"seconds": 0.5,
|
||||
"loop": false,
|
||||
"contact_seconds": -1.0
|
||||
},
|
||||
{
|
||||
"name": "idle",
|
||||
"frames": [
|
||||
0.0,
|
||||
96.0
|
||||
],
|
||||
"seconds": 4.0,
|
||||
"loop": true,
|
||||
"contact_seconds": -1.0
|
||||
},
|
||||
{
|
||||
"name": "ultimate",
|
||||
"frames": [
|
||||
0.0,
|
||||
31.0
|
||||
],
|
||||
"seconds": 1.2917,
|
||||
"loop": false,
|
||||
"contact_seconds": 0.775
|
||||
},
|
||||
{
|
||||
"name": "walk",
|
||||
"frames": [
|
||||
0.0,
|
||||
31.0
|
||||
],
|
||||
"seconds": 1.2917,
|
||||
"loop": true,
|
||||
"contact_seconds": -1.0
|
||||
}
|
||||
],
|
||||
"expected_from_godot": {
|
||||
"triangles": 28706,
|
||||
"bones": 25,
|
||||
"clips": [
|
||||
"idle",
|
||||
"walk",
|
||||
"attack_a",
|
||||
"attack_b",
|
||||
"hit",
|
||||
"ability",
|
||||
"death",
|
||||
"ultimate"
|
||||
]
|
||||
},
|
||||
"meshes_with_ngons": {},
|
||||
"meshes_without_uv": [],
|
||||
"triangles": 28706,
|
||||
"fbx": "Assets/Luneraria/Art/Characters/brunhild.fbx",
|
||||
"fbx_bytes": 3796828,
|
||||
"ok": true
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 76fa6bac90ff045589eba33ed23ef0dd
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,373 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 29d894f788c5f4fbbacf819091c19542
|
||||
ModelImporter:
|
||||
serializedVersion: 24300
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
searchTexturesGlobally: 0
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 0
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 0
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: ability
|
||||
takeName: BrunhildRig|ability
|
||||
internalID: 3282932801577121271
|
||||
firstFrame: 0
|
||||
lastFrame: 24
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0.64
|
||||
functionName: OnLuneContact
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: attack_a
|
||||
takeName: BrunhildRig|attack_a
|
||||
internalID: -4088893210095135303
|
||||
firstFrame: 0
|
||||
lastFrame: 23
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0.5384535
|
||||
functionName: OnLuneContact
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: attack_b
|
||||
takeName: BrunhildRig|attack_b
|
||||
internalID: -3393105429929367649
|
||||
firstFrame: 0
|
||||
lastFrame: 24
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0.5556
|
||||
functionName: OnLuneContact
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: death
|
||||
takeName: BrunhildRig|death
|
||||
internalID: -575409383583182742
|
||||
firstFrame: 0
|
||||
lastFrame: 58
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: hit
|
||||
takeName: BrunhildRig|hit
|
||||
internalID: 4649535545551490279
|
||||
firstFrame: 0
|
||||
lastFrame: 12
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: idle
|
||||
takeName: BrunhildRig|idle
|
||||
internalID: -7637435868926338065
|
||||
firstFrame: 0
|
||||
lastFrame: 96
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: ultimate
|
||||
takeName: BrunhildRig|ultimate
|
||||
internalID: 7528617810713444434
|
||||
firstFrame: 0
|
||||
lastFrame: 31
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0.5999845
|
||||
functionName: OnLuneContact
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: walk
|
||||
takeName: BrunhildRig|walk
|
||||
internalID: -759485606388579005
|
||||
firstFrame: 0
|
||||
lastFrame: 31
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages:
|
||||
- 0.25
|
||||
- 0.01
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 0
|
||||
importBlendShapes: 0
|
||||
importCameras: 0
|
||||
importLights: 0
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 1
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 1
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,275 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1102 &-9220055677375747029
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: walk
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -759485606388579005, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-4719041364407145157
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: death
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -575409383583182742, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-3340885724969997654
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ultimate
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7528617810713444434, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: brunhild
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters: []
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 4919687160989328924}
|
||||
m_Mask: {fileID: 0}
|
||||
m_Motions: []
|
||||
m_Behaviours: []
|
||||
m_BlendingMode: 0
|
||||
m_SyncedLayerIndex: -1
|
||||
m_DefaultWeight: 0
|
||||
m_IKPass: 0
|
||||
m_SyncedLayerAffectsTiming: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
--- !u!1102 &604826683839612195
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ability
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 3282932801577121271, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &3419020185831067391
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack_a
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -4088893210095135303, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &4117362530366511861
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: hit
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 4649535545551490279, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &4353629903250305412
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack_b
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -3393105429929367649, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1107 &4919687160989328924
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Base Layer
|
||||
m_ChildStates:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 6833392093826740936}
|
||||
m_Position: {x: 200, y: 0, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 604826683839612195}
|
||||
m_Position: {x: 235, y: 65, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 3419020185831067391}
|
||||
m_Position: {x: 270, y: 130, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 4353629903250305412}
|
||||
m_Position: {x: 305, y: 195, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -4719041364407145157}
|
||||
m_Position: {x: 340, y: 260, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 4117362530366511861}
|
||||
m_Position: {x: 375, y: 325, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -3340885724969997654}
|
||||
m_Position: {x: 410, y: 390, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -9220055677375747029}
|
||||
m_Position: {x: 445, y: 455, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 6833392093826740936}
|
||||
--- !u!1102 &6833392093826740936
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: idle
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -7637435868926338065, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8f779b941008d48fea9cfb256567bb9d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 9100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 6.5 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0dbeeb8c48f344e64962b71d5e9fcca1
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 6.1 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f701c67235f354e4dac0ee3235b94b3d
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 1
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 3.3 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1722b2d9a084347b8845372bf878a61f
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 6.8 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ed6f51893270d4a81a491e1b895a5815
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 5.2 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 336afb236cf9f438dae9687f76420327
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 5 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9b19528e38c1f468a8dfb54927968778
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 1
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 2.4 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cf3a5ed7600ba42349191e05cfe011e8
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 5.6 MiB |
|
|
@ -1,117 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1fadc4bab123948b3b3f54a2fe52173a
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -60,13 +60,7 @@ namespace Luneraria.Core
|
|||
new HeroSpec { Id = "held_sylvara", Name = "Sylvara", Title = "Die Mondklinge", Model = "sylvara", Cost = 260, RoleText = "Assassine / Nahkampf", Provisional = false, Summary = "Springt in die zweite Reihe, wirft Sicheln und wirbelt mit dem Mondsicheltanz durch Gruppen.",
|
||||
PassiveText = "Mondsprung: einmal pro Kampf auf den nächsten Fernkämpfer oder Unterstützer in 8 m, der höchstens 2 Begleiter in 3 m hat. Der erste Treffer danach macht 150 % Schaden; Mondschleier schützt 4 s mit 25 % ihrer Lebenspunkte.",
|
||||
AbilityText = "Sichelwurf: ab 4 s alle 6 s 90 % Schaden an ihrem Ziel und bis zu 2 weiteren Gegnern in 2,5 m.",
|
||||
UltimateName = "Mondsicheltanz", UltimateText = "Einmal pro Kampf, frühestens nach 2 s: 220 % Schaden an bis zu 5 Gegnern in 5 m, die 2 s um 30 % verlangsamt werden; danach Mondschleier. Wann er ausgelöst wird, legst du in der Planung fest.", Base = new UnitDef { MaxHp = 1450.0, Damage = 42.0, AttackType = 0, ArmorType = 0, AttackRange = 1.2, Speed = 2.8, Ability = "sylvara", AbilityDescription = "Mondsprung auf ungeschützte Fernkämpfer · Sichelwurf alle 6 s · Ultimate Mondsicheltanz nach Planungsregel." } },
|
||||
// H2: Brunhild, the second hero of the champions concept.
|
||||
new HeroSpec { Id = "held_brunhild", Name = "Brunhild", Title = "Die Walküre", Model = "brunhild", Cost = 260, RoleText = "Heldenjägerin / Nahkampf", Provisional = false, Summary = "Markiert mit dem Speer, stürzt sich auf Helden und betäubt mit dem Walkürensturz.",
|
||||
PassiveText = "Heldenjägerin: +25 % Schaden gegen Helden und Angriffschampions.",
|
||||
AbilityText = "Speerwurf: ab 3 s alle 6 s 120 % Schaden am fernsten Gegner in 7 m; er ist 4 s markiert und nimmt 15 % mehr Schaden.",
|
||||
UltimateName = "Walkürensturz", UltimateText = "Einmal pro Kampf, frühestens nach 2 s: Sprung auf ihr Ziel (ein Held oder der markierte Gegner zuerst), 200 % Schaden an allen Gegnern in 3 m und 1 s Betäubung (Bosse sind immun); danach Walkürenschild (30 % ihrer Lebenspunkte, 5 s). Wann sie springt, legst du in der Planung fest.",
|
||||
Base = new UnitDef { MaxHp = 2000.0, Damage = 42.0, AttackType = 1, ArmorType = 1, AttackRange = 2.0, Speed = 2.4, Ability = "brunhild", AbilityDescription = "Heldenjägerin · Speerwurf markiert alle 6 s · Ultimate Walkürensturz nach Planungsregel." } }
|
||||
UltimateName = "Mondsicheltanz", UltimateText = "Einmal pro Kampf, frühestens nach 2 s: 220 % Schaden an bis zu 5 Gegnern in 5 m, die 2 s um 30 % verlangsamt werden; danach Mondschleier. Wann er ausgelöst wird, legst du in der Planung fest.", Base = new UnitDef { MaxHp = 1450.0, Damage = 42.0, AttackType = 0, ArmorType = 0, AttackRange = 1.2, Speed = 2.8, Ability = "sylvara", AbilityDescription = "Mondsprung auf ungeschützte Fernkämpfer · Sichelwurf alle 6 s · Ultimate Mondsicheltanz nach Planungsregel." } }
|
||||
);
|
||||
|
||||
/// <summary>Heroes of the Godot reference; ContentTests compares exactly these, later heroes follow them.</summary>
|
||||
|
|
@ -97,11 +91,6 @@ namespace Luneraria.Core
|
|||
{
|
||||
new[] { new TalentOption("mondsilber", "Mondsilber", "Einzelziel: Der Sichelwurf trifft nur das Ziel, dafür mit 200 % statt 90 % Schaden."), new TalentOption("sichelsturm", "Sichelsturm", "Fläche: Der Sichelwurf trifft bis zu 5 statt 3 Gegner in 3,5 m.") },
|
||||
new[] { new TalentOption("neumond", "Neumond", "+20 % Angriffstempo."), new TalentOption("vollmond", "Vollmond", "Mondsicheltanz: bis zu 7 statt 5 Ziele, 280 % statt 220 % Schaden.") }
|
||||
} },
|
||||
{ "held_brunhild", new[]
|
||||
{
|
||||
new[] { new TalentOption("walkuerenblut", "Walkürenblut", "Einzelziel: Der Speerwurf macht gegen Helden und Champions doppelten Schaden."), new TalentOption("speerregen", "Speerregen", "Fläche: Der Speerwurf trifft die drei fernsten Gegner in 7 m.") },
|
||||
new[] { new TalentOption("rabenschwinge", "Rabenschwinge", "+20 % Angriffstempo."), new TalentOption("goetterdaemmerung", "Götterdämmerung", "Walkürensturz: 2 s Betäubung in 4 m statt 1 s in 3 m.") }
|
||||
} }
|
||||
};
|
||||
|
||||
|
|
@ -113,7 +102,6 @@ namespace Luneraria.Core
|
|||
public static readonly Dictionary<string, TalentOption[]> HeroSkins = new Dictionary<string, TalentOption[]>
|
||||
{
|
||||
{ "held_sylvara", new[] { new TalentOption("blutmond", "Blutmond", "Variante: rote Klingen und Runen, dunkelrotes Tuch, nachgedunkeltes Silber.") } },
|
||||
{ "held_brunhild", new[] { new TalentOption("eiswalkuere", "Eiswalküre", "Variante: eisblauer Umhang und Federn statt Rot, frostiges Gold.") } },
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -130,13 +118,6 @@ namespace Luneraria.Core
|
|||
new TalentOption("notfall", "Notfall", "Wenn Sylvara unter 40 % Leben fällt und ein Gegner in 4 m steht."),
|
||||
new TalentOption("sofort", "Sofort", "Beim ersten Gegner in 4 m."),
|
||||
} },
|
||||
{ "held_brunhild", new[]
|
||||
{
|
||||
new TalentOption("gruppe", "Gruppe", "Sobald mindestens 3 Gegner in 4 m um ihr Ziel stehen."),
|
||||
new TalentOption("held", "Heldenjagd", "Sobald ein gegnerischer Held oder Angriffschampion in 7 m steht."),
|
||||
new TalentOption("notfall", "Notfall", "Wenn Brunhild unter 40 % Leben fällt und ein Gegner in 7 m steht."),
|
||||
new TalentOption("sofort", "Sofort", "Beim ersten Gegner in 7 m."),
|
||||
} },
|
||||
};
|
||||
|
||||
public static readonly OrderedMap<string, ItemSpec> Items = Ordered(
|
||||
|
|
@ -164,7 +145,7 @@ namespace Luneraria.Core
|
|||
|
||||
/// <summary>Base troop id to role; iteration order matters for RoleOf (first match).</summary>
|
||||
public static readonly OrderedMap<string, string> MatchRoles = Pairs("g01", "melee", "g03", "front", "g05", "ranged", "g07", "splash", "g09", "support", "w01", "melee", "w03", "front", "w05", "ranged", "w07", "splash", "w09", "support");
|
||||
public static readonly OrderedMap<string, string> HeroRoles = Pairs("held_ringborke", "front", "held_quellgeflecht", "support", "held_funkenlanze", "ranged", "held_sylvara", "melee", "held_brunhild", "melee");
|
||||
public static readonly OrderedMap<string, string> HeroRoles = Pairs("held_ringborke", "front", "held_quellgeflecht", "support", "held_funkenlanze", "ranged", "held_sylvara", "melee");
|
||||
public static readonly string[] RowOrder = { "front", "melee", "splash", "ranged", "support" };
|
||||
public static readonly string[] BotNames = { "Eichrufer", "Aschenzunge", "Quellwächter", "Glutfaust", "Moosauge", "Basaltherz", "Rindenkrone", "Funkenschritt" };
|
||||
public static readonly string[] WavesMelee = { "e01", "e02", "e05" };
|
||||
|
|
@ -187,8 +168,7 @@ namespace Luneraria.Core
|
|||
/// bot match). Usable as a fixed profile per slot (MatchOptions.Profiles, balance runs).
|
||||
/// </summary>
|
||||
public static readonly OrderedMap<string, BotProfile> ExtraBotProfiles = Ordered(
|
||||
new BotProfile { Name = "assassine", Front = 0.3, Melee = 0.25, Ranged = 0.25, Splash = 0.1, Support = 0.1, UpgradeFrom = 6, SupportLane = 0.0, Hero = "held_sylvara", HeroRound = 3, Items = new[] { "glutklinge", "funkenfokus", "basaltschild" }, TalentChoices = new[] { 1, 0 }, Champion = "" },
|
||||
new BotProfile { Name = "walkuere", Front = 0.3, Melee = 0.25, Ranged = 0.25, Splash = 0.1, Support = 0.1, UpgradeFrom = 6, SupportLane = 0.0, Hero = "held_brunhild", HeroRound = 3, Items = new[] { "glutklinge", "basaltschild", "funkenfokus" }, TalentChoices = new[] { 0, 1 }, Champion = "" }
|
||||
new BotProfile { Name = "assassine", Front = 0.3, Melee = 0.25, Ranged = 0.25, Splash = 0.1, Support = 0.1, UpgradeFrom = 6, SupportLane = 0.0, Hero = "held_sylvara", HeroRound = 3, Items = new[] { "glutklinge", "funkenfokus", "basaltschild" }, TalentChoices = new[] { 1, 0 }, Champion = "" }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ namespace Luneraria.Core
|
|||
reduction += 0.15;
|
||||
if (hero.Talents.Contains("fernsicht"))
|
||||
definition.AttackRange = definition.AttackRange + 1.5;
|
||||
if (hero.Talents.Contains("glutsalve") || hero.Talents.Contains("neumond") || hero.Talents.Contains("rabenschwinge"))
|
||||
if (hero.Talents.Contains("glutsalve") || hero.Talents.Contains("neumond"))
|
||||
attackSpeed += 0.20;
|
||||
definition.UltimateRule = UltimateRuleFor(hero);
|
||||
definition.Skin = ValidSkin(hero.HeroId, hero.Skin) ? hero.Skin ?? "" : "";
|
||||
|
|
|
|||
|
|
@ -711,7 +711,6 @@ namespace Luneraria.Core
|
|||
// H1: leap and ultimate counters ride in the flag bits (8 bits each, compared for change only).
|
||||
unit.LeapSerial = (flags >> 2) & 0xFF;
|
||||
unit.UltimateSerial = (flags >> 10) & 0xFF;
|
||||
unit.NetStunned = (flags & (1 << 18)) != 0;
|
||||
unit.AttackProgress = data[baseIndex + 7];
|
||||
unit.HitCount = (int)data[baseIndex + 8];
|
||||
unit.AttackSerial = (int)data[baseIndex + 9];
|
||||
|
|
@ -732,13 +731,6 @@ namespace Luneraria.Core
|
|||
building.Hp = buildingHp[index];
|
||||
building.Alive = building.Hp > 0.0;
|
||||
}
|
||||
for (int team = 0; team < 2 && buildingHp.Length >= buildings.Count + 4; team++)
|
||||
{
|
||||
int lane = (int)buildingHp[buildings.Count + team * 2] - 1;
|
||||
float left = buildingHp[buildings.Count + team * 2 + 1];
|
||||
combat.GlyphLane[team] = lane >= 0 && lane < 3 ? LuneMap.Lanes[lane] : "";
|
||||
combat.GlyphUntil[team] = lane >= 0 ? combat.Elapsed + left : -1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -821,7 +813,7 @@ namespace Luneraria.Core
|
|||
{
|
||||
if (!unit.IsMobile())
|
||||
continue;
|
||||
int flags = (unit.Alive ? 1 : 0) | (unit.InRange ? 2 : 0) | ((unit.LeapSerial & 0xFF) << 2) | ((unit.UltimateSerial & 0xFF) << 10) | (unit.Stunned() ? 1 << 18 : 0);
|
||||
int flags = (unit.Alive ? 1 : 0) | (unit.InRange ? 2 : 0) | ((unit.LeapSerial & 0xFF) << 2) | ((unit.UltimateSerial & 0xFF) << 10);
|
||||
data.Add(unit.Id);
|
||||
data.Add((float)unit.Position.X);
|
||||
data.Add((float)unit.Position.Y);
|
||||
|
|
@ -842,19 +834,7 @@ namespace Luneraria.Core
|
|||
public float[] BuildingHpArray()
|
||||
{
|
||||
IReadOnlyList<BuildingDef> buildings = MatchState.Map.Buildings;
|
||||
// S4: four more values after the buildings carry the running glyph of each team (lane
|
||||
// index + 1, seconds left) so guests see the glyph ring; older guests ignore them.
|
||||
var data = new float[buildings.Count + 4];
|
||||
LuneCombat glyphs = MatchState.Phase == Phase.Combat ? MatchState.Combat : null;
|
||||
for (int team = 0; team < 2 && glyphs != null; team++)
|
||||
{
|
||||
double left = glyphs.GlyphUntil[team] - glyphs.Elapsed;
|
||||
if (glyphs.GlyphLane[team].Length > 0 && left > 0.0)
|
||||
{
|
||||
data[buildings.Count + team * 2] = LuneMap.LaneIndex(glyphs.GlyphLane[team]) + 1;
|
||||
data[buildings.Count + team * 2 + 1] = (float)left;
|
||||
}
|
||||
}
|
||||
var data = new float[buildings.Count];
|
||||
for (int index = 0; index < buildings.Count; index++)
|
||||
{
|
||||
double hp;
|
||||
|
|
|
|||
|
|
@ -747,8 +747,6 @@ namespace Luneraria.Core
|
|||
}
|
||||
if (unit.HitCount % 3 == 0 && unit.HasTalent("stammschlag"))
|
||||
damage *= 1.6;
|
||||
if (unit.Ability() == "brunhild" && HeroLike(target))
|
||||
damage *= BrunhildHunter;
|
||||
if (unit.LeapStrike)
|
||||
{
|
||||
damage *= SylvaraLeapStrike;
|
||||
|
|
@ -813,9 +811,6 @@ namespace Luneraria.Core
|
|||
case "sylvara":
|
||||
unit.AbilityReady = SylvaraFirstThrow;
|
||||
break;
|
||||
case "brunhild":
|
||||
unit.AbilityReady = BrunhildFirstSpear;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -868,8 +863,6 @@ namespace Luneraria.Core
|
|||
{
|
||||
if (unit.Ability() == "sylvara")
|
||||
SylvaraStep(unit, gates);
|
||||
else if (unit.Ability() == "brunhild")
|
||||
BrunhildStep(unit, gates);
|
||||
double regen = unit.Def.Regen;
|
||||
if (regen > 0.0 && unit.Hp < unit.MaxHp)
|
||||
QueueHeal(unit, unit.MaxHp * regen * Balance.SimStep);
|
||||
|
|
@ -976,9 +969,6 @@ namespace Luneraria.Core
|
|||
case "sylvara":
|
||||
success = SylvaraThrow(unit, gates);
|
||||
break;
|
||||
case "brunhild":
|
||||
success = BrunhildSpear(unit, gates);
|
||||
break;
|
||||
}
|
||||
if (success)
|
||||
{
|
||||
|
|
@ -1114,97 +1104,6 @@ namespace Luneraria.Core
|
|||
return true;
|
||||
}
|
||||
|
||||
// H2 Brunhild
|
||||
public const double BrunhildFirstSpear = 3.0;
|
||||
public const double BrunhildSpearRange = 7.0;
|
||||
public const double BrunhildHunter = 1.25;
|
||||
public const double BrunhildShield = 0.30;
|
||||
|
||||
static bool HeroLike(LuneUnit unit) { return unit.Kind == "hero" || unit.Kind == "champion"; }
|
||||
|
||||
/// <summary>Enemies within the radius, farthest first (ties by id), mobile only.</summary>
|
||||
List<LuneUnit> Farthest(LuneUnit unit, double radius, int maximum)
|
||||
{
|
||||
List<LuneUnit> result = NearbyMobile(unit, radius, 1000);
|
||||
result.Reverse();
|
||||
GdMath.SortStable(result, (a, b) =>
|
||||
{
|
||||
double ad = a.Position.DistanceTo(unit.Position);
|
||||
double bd = b.Position.DistanceTo(unit.Position);
|
||||
return GdMath.IsEqualApprox(ad, bd) ? a.Id < b.Id : ad > bd;
|
||||
});
|
||||
if (result.Count > maximum)
|
||||
result.RemoveRange(maximum, result.Count - maximum);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>Speerwurf: 120 % to the farthest enemy in 7 m (Speerregen: three), marked 4 s (+15 % damage taken).</summary>
|
||||
bool BrunhildSpear(LuneUnit unit, Dictionary<string, bool> gates)
|
||||
{
|
||||
List<LuneUnit> victims = Farthest(unit, BrunhildSpearRange, unit.HasTalent("speerregen") ? 3 : 1);
|
||||
if (victims.Count == 0)
|
||||
return false;
|
||||
double damage = unit.Def.Damage * (1.0 + unit.DamageBonus()) * 1.2;
|
||||
foreach (LuneUnit victim in victims)
|
||||
{
|
||||
double hit = damage * (HeroLike(victim) ? BrunhildHunter * (unit.HasTalent("walkuerenblut") ? 2.0 : 1.0) : 1.0);
|
||||
QueueDamage(victim, victim.Mitigated(hit, unit.Def.AttackType), gates);
|
||||
AddEffect(victim, "valkyrie_mark", "vulnerable", 0.15, 4.0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Walkürensturz (once per combat after 2 s, by the planned rule): she leaps to her target
|
||||
/// (an enemy hero or champion in 7 m first, then the marked enemy, then her current target),
|
||||
/// deals 200 % to every enemy within 3 m of it and stuns them 1 s (Götterdämmerung: 2 s in
|
||||
/// 4 m); bosses are not stunned. Decided on the state at the start of the step.
|
||||
/// </summary>
|
||||
void BrunhildStep(LuneUnit unit, Dictionary<string, bool> gates)
|
||||
{
|
||||
if (unit.UltimateUsed || string.IsNullOrEmpty(unit.Def.UltimateRule) || unit.CombatTime + 0.000001 < LuneContent.UltimateDelay)
|
||||
return;
|
||||
List<LuneUnit> reach = NearbyMobile(unit, BrunhildSpearRange, 1000);
|
||||
if (reach.Count == 0)
|
||||
return;
|
||||
LuneUnit target = reach.Find(HeroLike) ?? reach.Find(other => other.Effects.ContainsKey("valkyrie_mark"))
|
||||
?? (unit.Target != null && reach.Contains(unit.Target) ? unit.Target : reach[0]);
|
||||
bool full = unit.HasTalent("goetterdaemmerung");
|
||||
double radius = full ? 4.0 : 3.0;
|
||||
bool release = false;
|
||||
switch (unit.Def.UltimateRule)
|
||||
{
|
||||
case "gruppe":
|
||||
release = Nearby(unit, false, target.Position, 4.0, 1000).FindAll(other => other.IsMobile()).Count >= 3;
|
||||
break;
|
||||
case "held":
|
||||
release = HeroLike(target);
|
||||
break;
|
||||
case "notfall":
|
||||
release = unit.Hp < unit.MaxHp * 0.4;
|
||||
break;
|
||||
case "sofort":
|
||||
release = true;
|
||||
break;
|
||||
}
|
||||
if (!release)
|
||||
return;
|
||||
double damage = unit.Def.Damage * (1.0 + unit.DamageBonus()) * 2.0;
|
||||
foreach (LuneUnit victim in Nearby(unit, false, target.Position, radius, 1000))
|
||||
{
|
||||
if (!victim.IsMobile())
|
||||
continue;
|
||||
QueueDamage(victim, victim.Mitigated(damage * (HeroLike(victim) ? BrunhildHunter : 1.0), unit.Def.AttackType), gates);
|
||||
if (!victim.IsBoss())
|
||||
AddEffect(victim, "valkyrie_stun", "stun", 1.0, full ? 2.0 : 1.0);
|
||||
}
|
||||
// Walkürenschild: after the leap she is shielded like Sylvara after hers.
|
||||
_pendingShields.Add(new PendingShield { Unit = unit, Amount = unit.MaxHp * BrunhildShield, Duration = 5.0 });
|
||||
unit.LeapTarget = target;
|
||||
unit.UltimateUsed = true;
|
||||
unit.UltimateSerial += 1;
|
||||
}
|
||||
|
||||
void OnHit(LuneUnit unit, LuneUnit primary, List<LuneUnit> living, Dictionary<string, bool> gates)
|
||||
{
|
||||
string ability = unit.Ability();
|
||||
|
|
|
|||
|
|
@ -74,40 +74,6 @@ namespace Luneraria.Core
|
|||
return match.Map.LanePoint(0, lane, match.Map.LanePaths[lane].Length * 0.5, 0.0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// S4: everything that gives the team sight in the shown combat (or planning preview):
|
||||
/// own living units, own standing buildings (from the match, so the planning preview has
|
||||
/// them too) and the team's wards. Each as point, radius and zone.
|
||||
/// </summary>
|
||||
public static List<KeyValuePair<Vec2, double>> Vision(LuneMatch match, LuneCombat shown, int team, string zone = "lane")
|
||||
{
|
||||
var result = new List<KeyValuePair<Vec2, double>>();
|
||||
if (match == null || team < 0 || team > 1)
|
||||
return result;
|
||||
if (shown != null)
|
||||
{
|
||||
foreach (LuneUnit unit in shown.Units)
|
||||
{
|
||||
if (unit.Team == team && unit.Alive && unit.IsMobile() && unit.Zone == zone)
|
||||
result.Add(new KeyValuePair<Vec2, double>(unit.Position, UnitSight));
|
||||
}
|
||||
}
|
||||
if (zone == "lane")
|
||||
{
|
||||
foreach (BuildingDef definition in match.Map.Buildings)
|
||||
{
|
||||
if (definition.Team == team && match.BuildingHp[definition.Id] > 0.0)
|
||||
result.Add(new KeyValuePair<Vec2, double>(definition.Position, BuildingSight));
|
||||
}
|
||||
foreach (string lane in LuneMap.Lanes)
|
||||
{
|
||||
if (match.Boss.Wards[team * 3 + LuneMap.LaneIndex(lane)] > 0)
|
||||
result.Add(new KeyValuePair<Vec2, double>(WardPoint(match, lane), WardSight));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ids of the enemy units the team cannot see in the shown combat (the live combat, or
|
||||
/// the planning preview when planning). Empty without the extended rules or for team -1.
|
||||
|
|
|
|||
|
|
@ -79,11 +79,6 @@ namespace Luneraria.Core
|
|||
public int AbilitySerial;
|
||||
public int LeapSerial;
|
||||
public int UltimateSerial;
|
||||
/// <summary>S4: stunned as reported by the host's frame (guests have no effects); presentation only.</summary>
|
||||
public bool NetStunned;
|
||||
|
||||
/// <summary>Stunned for the view: the own effect on the host, the frame flag on a guest.</summary>
|
||||
public bool ShowsStun() { return NetStunned || Stunned(); }
|
||||
public double HitFlash;
|
||||
public bool InRange;
|
||||
public double DeathTime = -1.0;
|
||||
|
|
@ -108,8 +103,7 @@ namespace Luneraria.Core
|
|||
public double Mitigated(double raw, int attackType)
|
||||
{
|
||||
double value = GdMath.Max(0.0, raw) * DamageMatrix[GdMath.Clamp(attackType, 0, 2), ArmorType()];
|
||||
// H2: a unit marked by Brunhild's spear takes more damage ("vulnerable"; 0 for everyone else).
|
||||
return value * (1.0 - DamageReduction()) * (1.0 + StrongestEffect("vulnerable"));
|
||||
return value * (1.0 - DamageReduction());
|
||||
}
|
||||
|
||||
/// <summary>Applies an already mitigated amount through the shield.</summary>
|
||||
|
|
@ -215,13 +209,8 @@ namespace Luneraria.Core
|
|||
return GdMath.Min(0.35, result + Def.ReductionBonus);
|
||||
}
|
||||
|
||||
/// <summary>H2: Brunhild's stun stops attacks and movement for its duration.</summary>
|
||||
public bool Stunned() { return StrongestEffect("stun") > 0.0; }
|
||||
|
||||
public double AttackSpeedFactor()
|
||||
{
|
||||
if (Stunned())
|
||||
return 0.0;
|
||||
double slowing = StrongestEffect("attack_slow") * (IsBoss() ? 0.5 : 1.0);
|
||||
double bonus = Def.AttackSpeedBonus;
|
||||
return 1.0 + GdMath.Clamp(StrongestEffect("attack_speed") - slowing + bonus, -0.25, 0.5);
|
||||
|
|
@ -233,8 +222,6 @@ namespace Luneraria.Core
|
|||
|
||||
public double MovementFactor()
|
||||
{
|
||||
if (Stunned())
|
||||
return 0.0;
|
||||
return 1.0 - GdMath.Min(0.35, StrongestEffect("movement_slow") * (IsBoss() ? 0.5 : 1.0));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,6 @@ namespace Luneraria.EditorTools
|
|||
}
|
||||
library.HeroRing = Marker("Ring_Hero", LuneMaterialFactory.Hex("f2c96b"), 2.2f, false);
|
||||
library.MoonBurst = Marker("Ring_MoonBurst", LuneMaterialFactory.Hex("8fb8ff"), 4f, false);
|
||||
library.FogOverlay = FogMaterial();
|
||||
for (int team = 0; team < 2; team++)
|
||||
{
|
||||
library.OwnerRing[team] = Marker("Ring_Owner_" + team, LuneMaterialFactory.TeamColor[team], 3f, false);
|
||||
|
|
@ -181,24 +180,6 @@ namespace Luneraria.EditorTools
|
|||
return existing;
|
||||
}
|
||||
|
||||
/// <summary>S4: the fog of war overlay material (night blue, alpha from the grid's vertices).</summary>
|
||||
static Material FogMaterial()
|
||||
{
|
||||
string path = LuneMaterialFactory.Folder + "/Markers/Fog_Overlay.mat";
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(path));
|
||||
Shader shader = Shader.Find("Luneraria/FogOverlay");
|
||||
var material = AssetDatabase.LoadAssetAtPath<Material>(path);
|
||||
if (material == null)
|
||||
{
|
||||
material = new Material(shader);
|
||||
AssetDatabase.CreateAsset(material, path);
|
||||
}
|
||||
material.shader = shader;
|
||||
material.SetColor("_Color", new Color(.03f, .04f, .08f, 1f));
|
||||
EditorUtility.SetDirty(material);
|
||||
return material;
|
||||
}
|
||||
|
||||
/// <summary>Unshaded marker colour (Godot _flat with emission energy); bars draw on top.</summary>
|
||||
static Material Marker(string name, Color srgb, float energy, bool onTop)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -189,14 +189,6 @@ MonoBehaviour:
|
|||
Neutral: {fileID: 2100000, guid: 2844b8628dab84e70bea79fbffa9958f, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
Rot: {fileID: 0}
|
||||
- Key: AI_Brunhild
|
||||
Neutral: {fileID: 2100000, guid: 86538db76bda54b19acbf73c7e1e6432, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
Rot: {fileID: 0}
|
||||
- Key: AI_BrunhildSpeer
|
||||
Neutral: {fileID: 2100000, guid: 683e7a7f8c9ff4bafbe24e22287ad674, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
Rot: {fileID: 0}
|
||||
- Key: AI_Funkenlanze
|
||||
Neutral: {fileID: 2100000, guid: d5a88e3321a884b30bd8a8606b78090d, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
|
|
@ -753,14 +745,6 @@ MonoBehaviour:
|
|||
Neutral: {fileID: 2100000, guid: 09c239a4cf52e4af4969869c24b078ff, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
Rot: {fileID: 0}
|
||||
- Key: AI_Brunhild_Eiswalkuere
|
||||
Neutral: {fileID: 2100000, guid: 8058295d8bee34a8b831603ad53f5501, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
Rot: {fileID: 0}
|
||||
- Key: AI_BrunhildSpeer_Eiswalkuere
|
||||
Neutral: {fileID: 2100000, guid: 40b5dbee4b87547ef9b92e96deeb30a6, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
Rot: {fileID: 0}
|
||||
- Key: AI_Sylvara_Blutmond
|
||||
Neutral: {fileID: 2100000, guid: aa1c3bf7df6bd46ddbe3d0c8051d5b82, type: 2}
|
||||
Blau: {fileID: 0}
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Fog_Overlay
|
||||
m_Shader: {fileID: 4800000, guid: 7633b9f391704a8f84ae742a82128282, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs: []
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors:
|
||||
- _Color: {r: 0.03, g: 0.04, b: 0.08, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7846e5bf0b03a456ab8720cbca2c8d9d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: AI_Brunhild
|
||||
m_Shader: {fileID: 4800000, guid: 9809bd5750e264586bd30e14a6f1bd4e, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 1
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AlbedoMap:
|
||||
m_Texture: {fileID: 2800000, guid: 0dbeeb8c48f344e64962b71d5e9fcca1, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 2800000, guid: f701c67235f354e4dac0ee3235b94b3d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OrmMap:
|
||||
m_Texture: {fileID: 2800000, guid: 1722b2d9a084347b8845372bf878a61f, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _StoneMap:
|
||||
m_Texture: {fileID: 2800000, guid: 2e11a30a0df8143ab84722ec0a116b6d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Cull: 2
|
||||
- _Energy: 1
|
||||
- _Flicker: 0
|
||||
- _Glow: 1.25
|
||||
- _Metallic: 1
|
||||
- _Mode: 0
|
||||
- _NormalStrength: 1
|
||||
- _ObjectSpace: 0
|
||||
- _Quality: 1
|
||||
- _Relief: 0.016
|
||||
- _Rim: 0.35
|
||||
- _Roughness: 1
|
||||
- _Seed: 0
|
||||
- _ShadowNormalScale: 0
|
||||
- _StoneScale: 1
|
||||
- _UvMaps: 1
|
||||
- _VertexColor: 0
|
||||
m_Colors:
|
||||
- _AlbedoMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _OrmMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _RimColor: {r: 0.8, g: 0.86, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 86538db76bda54b19acbf73c7e1e6432
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: AI_BrunhildSpeer
|
||||
m_Shader: {fileID: 4800000, guid: 9809bd5750e264586bd30e14a6f1bd4e, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 1
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AlbedoMap:
|
||||
m_Texture: {fileID: 2800000, guid: 336afb236cf9f438dae9687f76420327, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 2800000, guid: 9b19528e38c1f468a8dfb54927968778, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OrmMap:
|
||||
m_Texture: {fileID: 2800000, guid: cf3a5ed7600ba42349191e05cfe011e8, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _StoneMap:
|
||||
m_Texture: {fileID: 2800000, guid: 2e11a30a0df8143ab84722ec0a116b6d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Cull: 2
|
||||
- _Energy: 1
|
||||
- _Flicker: 0
|
||||
- _Glow: 1.25
|
||||
- _Metallic: 1
|
||||
- _Mode: 0
|
||||
- _NormalStrength: 1
|
||||
- _ObjectSpace: 0
|
||||
- _Quality: 1
|
||||
- _Relief: 0.016
|
||||
- _Rim: 0.35
|
||||
- _Roughness: 1
|
||||
- _Seed: 0
|
||||
- _ShadowNormalScale: 0
|
||||
- _StoneScale: 1
|
||||
- _UvMaps: 1
|
||||
- _VertexColor: 0
|
||||
m_Colors:
|
||||
- _AlbedoMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _OrmMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _RimColor: {r: 0.8, g: 0.86, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 683e7a7f8c9ff4bafbe24e22287ad674
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: AI_BrunhildSpeer_Eiswalkuere
|
||||
m_Shader: {fileID: 4800000, guid: 9809bd5750e264586bd30e14a6f1bd4e, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 1
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AlbedoMap:
|
||||
m_Texture: {fileID: 2800000, guid: 1fadc4bab123948b3b3f54a2fe52173a, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 2800000, guid: 9b19528e38c1f468a8dfb54927968778, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OrmMap:
|
||||
m_Texture: {fileID: 2800000, guid: cf3a5ed7600ba42349191e05cfe011e8, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _StoneMap:
|
||||
m_Texture: {fileID: 2800000, guid: 2e11a30a0df8143ab84722ec0a116b6d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Cull: 2
|
||||
- _Energy: 1
|
||||
- _Flicker: 0
|
||||
- _Glow: 1.25
|
||||
- _Metallic: 1
|
||||
- _Mode: 0
|
||||
- _NormalStrength: 1
|
||||
- _ObjectSpace: 0
|
||||
- _Quality: 1
|
||||
- _Relief: 0.016
|
||||
- _Rim: 0.35
|
||||
- _Roughness: 1
|
||||
- _Seed: 0
|
||||
- _ShadowNormalScale: 0
|
||||
- _StoneScale: 1
|
||||
- _UvMaps: 1
|
||||
- _VertexColor: 0
|
||||
m_Colors:
|
||||
- _AlbedoMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _OrmMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _RimColor: {r: 0.8, g: 0.86, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 40b5dbee4b87547ef9b92e96deeb30a6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: AI_Brunhild_Eiswalkuere
|
||||
m_Shader: {fileID: 4800000, guid: 9809bd5750e264586bd30e14a6f1bd4e, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 1
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AlbedoMap:
|
||||
m_Texture: {fileID: 2800000, guid: ed6f51893270d4a81a491e1b895a5815, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 2800000, guid: f701c67235f354e4dac0ee3235b94b3d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OrmMap:
|
||||
m_Texture: {fileID: 2800000, guid: 1722b2d9a084347b8845372bf878a61f, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _StoneMap:
|
||||
m_Texture: {fileID: 2800000, guid: 2e11a30a0df8143ab84722ec0a116b6d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Cull: 2
|
||||
- _Energy: 1
|
||||
- _Flicker: 0
|
||||
- _Glow: 1.25
|
||||
- _Metallic: 1
|
||||
- _Mode: 0
|
||||
- _NormalStrength: 1
|
||||
- _ObjectSpace: 0
|
||||
- _Quality: 1
|
||||
- _Relief: 0.016
|
||||
- _Rim: 0.35
|
||||
- _Roughness: 1
|
||||
- _Seed: 0
|
||||
- _ShadowNormalScale: 0
|
||||
- _StoneScale: 1
|
||||
- _UvMaps: 1
|
||||
- _VertexColor: 0
|
||||
m_Colors:
|
||||
- _AlbedoMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _OrmMean: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _RimColor: {r: 0.8, g: 0.86, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8058295d8bee34a8b831603ad53f5501
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -25,9 +25,6 @@ MonoBehaviour:
|
|||
- Id: basaltbastion_meshy
|
||||
Prefab: {fileID: 919132149155446097, guid: aa5734da897ea44808385f37d34070bf, type: 3}
|
||||
Controller: {fileID: 9100000, guid: a456a0a7fa6d34b699183f75137f8f86, type: 2}
|
||||
- Id: brunhild
|
||||
Prefab: {fileID: 919132149155446097, guid: 29d894f788c5f4fbbacf819091c19542, type: 3}
|
||||
Controller: {fileID: 9100000, guid: 8f779b941008d48fea9cfb256567bb9d, type: 2}
|
||||
- Id: e01
|
||||
Prefab: {fileID: 919132149155446097, guid: 940635ed8b965461daabecd5cafdba92, type: 3}
|
||||
Controller: {fileID: 0}
|
||||
|
|
@ -273,7 +270,6 @@ MonoBehaviour:
|
|||
- {fileID: 2100000, guid: 77d940cdf3d6043cb93c647607c3e35e, type: 2}
|
||||
HeroRing: {fileID: 2100000, guid: 862d58435f9824d969aecf8551257a64, type: 2}
|
||||
MoonBurst: {fileID: 2100000, guid: c79261fd1aa5e42479782d3bac53f7ba, type: 2}
|
||||
FogOverlay: {fileID: 2100000, guid: 7846e5bf0b03a456ab8720cbca2c8d9d, type: 2}
|
||||
BarBack: {fileID: 2100000, guid: 8efe289a463614fee8dcb19e789f2bf8, type: 2}
|
||||
BarFill:
|
||||
- {fileID: 2100000, guid: 778bc4f74208340e38dc099b897f3db3, type: 2}
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
// S4 fog of war: a ground-hugging grid whose vertex alpha darkens what the viewer's team cannot see.
|
||||
Shader "Luneraria/FogOverlay"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_Color("Fog colour", Color) = (0.03, 0.04, 0.07, 1)
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" "Queue" = "Transparent-50" }
|
||||
Pass
|
||||
{
|
||||
Name "Fog"
|
||||
Tags { "LightMode" = "UniversalForward" }
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
Cull Off
|
||||
HLSLPROGRAM
|
||||
#pragma vertex Vert
|
||||
#pragma fragment Frag
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
half4 _Color;
|
||||
CBUFFER_END
|
||||
struct Attributes { float4 positionOS : POSITION; half4 color : COLOR; };
|
||||
struct Varyings { float4 positionCS : SV_POSITION; half alpha : TEXCOORD0; };
|
||||
Varyings Vert(Attributes input)
|
||||
{
|
||||
Varyings output;
|
||||
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
|
||||
output.alpha = input.color.a;
|
||||
return output;
|
||||
}
|
||||
half4 Frag(Varyings input) : SV_Target { return half4(_Color.rgb, _Color.a * input.alpha); }
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7633b9f391704a8f84ae742a82128282
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -50,7 +50,7 @@ namespace Luneraria.Core.Tests
|
|||
|
||||
public static IList<CheckSuite> All()
|
||||
{
|
||||
return new List<CheckSuite> { new ContentSuite(), new CoreRulesSuite(), new M2RulesSuite(), new GoldenSuite(), new DeterminismSuite(), new NetSuite(), new NetRoundsSuite(), new H1HeroSuite(), new S1RulesSuite(), new S2RulesSuite(), new S3RulesSuite(), new H2HeroSuite(), new S4NetSuite() };
|
||||
return new List<CheckSuite> { new ContentSuite(), new CoreRulesSuite(), new M2RulesSuite(), new GoldenSuite(), new DeterminismSuite(), new NetSuite(), new NetRoundsSuite(), new H1HeroSuite(), new S1RulesSuite(), new S2RulesSuite(), new S3RulesSuite() };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ namespace Luneraria.Core.Tests
|
|||
// Heroes added after the port (H1) follow the reference heroes; those must match exactly.
|
||||
Check(expected.Keys.SequenceEqual(ContentData.ReferenceHeroes) && ContentData.Heroes.Keys.Take(ContentData.ReferenceHeroes.Length).SequenceEqual(ContentData.ReferenceHeroes),
|
||||
"heroes: same reference ids in the same order, later heroes after them");
|
||||
Check(ContentData.Heroes.Keys.Skip(ContentData.ReferenceHeroes.Length).SequenceEqual(new[] { "held_sylvara", "held_brunhild" }), "heroes: exactly the documented later heroes (H1 Sylvara, H2 Brunhild)");
|
||||
Check(ContentData.Heroes.Keys.Skip(ContentData.ReferenceHeroes.Length).SequenceEqual(new[] { "held_sylvara" }), "heroes: exactly the documented later heroes (H1: held_sylvara)");
|
||||
foreach (KeyValuePair<string, object> pair in expected)
|
||||
{
|
||||
var entry = MiniJson.Obj(pair.Value);
|
||||
|
|
|
|||
|
|
@ -1,148 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// H2: Brunhild, the Valkyrie. Purchase and rules, hunter passive, spear with mark, the leap
|
||||
/// with area damage and stun (bosses immune), talents, skin, bot profile; reference untouched.
|
||||
/// </summary>
|
||||
public sealed class H2HeroSuite : CheckSuite
|
||||
{
|
||||
public override string Name { get { return "h2"; } }
|
||||
|
||||
protected override void RunChecks()
|
||||
{
|
||||
TestPurchase();
|
||||
TestSpear();
|
||||
TestUltimate();
|
||||
TestPassiveAndTalents();
|
||||
TestBots();
|
||||
}
|
||||
|
||||
static LuneCombat Arena(HeroState hero, out LuneUnit brunhild, params KeyValuePair<string, double>[] enemies)
|
||||
{
|
||||
var balance = LuneBalance.Default();
|
||||
var combat = new LuneCombat(new LuneMap(balance), balance, 5);
|
||||
UnitDef definition = LuneContent.HeroDefinition(hero);
|
||||
definition.Role = "melee";
|
||||
brunhild = combat.Spawn("hero", 0, "mid", definition, 40.0, 0.0, 0, "h0-1");
|
||||
Vec2 forward = combat.Map.LaneForward(0, "mid", 40.0);
|
||||
foreach (KeyValuePair<string, double> enemy in enemies)
|
||||
{
|
||||
bool isHero = enemy.Key == "held";
|
||||
UnitDef def = isHero ? LuneContent.HeroDefinition(new HeroState { HeroId = "held_ringborke" }) : ContentData.Enemies[enemy.Key].Clone();
|
||||
def.MaxHp = 50000.0;
|
||||
def.Speed = 0.0;
|
||||
LuneUnit unit = combat.Spawn(isHero ? "hero" : "monster", 1, "mid", def, 40.0, 0.0, isHero ? 3 : -1, isHero ? "h3-1" : "");
|
||||
unit.Position = brunhild.Position + forward * enemy.Value;
|
||||
unit.PreviousPosition = unit.Position;
|
||||
}
|
||||
return combat;
|
||||
}
|
||||
|
||||
static KeyValuePair<string, double> At(string id, double distance) { return new KeyValuePair<string, double>(id, distance); }
|
||||
|
||||
static void Run(LuneCombat combat, double seconds)
|
||||
{
|
||||
int steps = (int)(seconds / combat.Balance.SimStep + 0.5);
|
||||
for (int i = 0; i < steps && !combat.Finished; i++)
|
||||
combat.Step();
|
||||
}
|
||||
|
||||
void TestPurchase()
|
||||
{
|
||||
var state = new LuneMatch();
|
||||
state.Setup(new MatchOptions { Seed = 71, HumanSlot = -1 });
|
||||
state.Players[0].Draft.Gold += 1000;
|
||||
Check(state.Submit(0, Command.HeroBuy("held_brunhild")).Ok, "Brunhild can be recruited for 260");
|
||||
Check(LuneContent.UltimateRuleFor(state.Players[0].Draft.Hero) == "gruppe", "default rule Gruppe");
|
||||
Check(state.Submit(0, Command.UltimateRule("held")).Ok && state.Submit(0, Command.HeroSkin("eiswalkuere")).Ok, "rule Heldenjagd and skin Eiswalküre");
|
||||
Check(!state.Submit(0, Command.HeroSkin("blutmond")).Ok, "Sylvara's skin is not hers");
|
||||
UnitDef definition = LuneContent.HeroDefinition(state.Players[0].Draft.Hero);
|
||||
Check(definition.Id == "brunhild" && definition.Skin == "eiswalkuere" && definition.UltimateRule == "held" && GdMath.IsEqualApprox(definition.AttackRange, 2.0), "definition carries model, skin, rule and the spear's reach");
|
||||
}
|
||||
|
||||
void TestSpear()
|
||||
{
|
||||
LuneUnit brunhild;
|
||||
LuneCombat combat = Arena(new HeroState { HeroId = "held_brunhild", Ultimate = "notfall" }, out brunhild, At("e01", 1.5), At("e01", 4.0), At("e04", 6.5));
|
||||
LuneUnit far = combat.Units.First(u => u.Def.Id == "e04");
|
||||
Run(combat, LuneCombat.BrunhildFirstSpear - 0.1);
|
||||
Check(brunhild.AbilitySerial == 0, "no spear before 3 s");
|
||||
Run(combat, 0.2);
|
||||
Check(brunhild.AbilitySerial == 1 && far.Effects.ContainsKey("valkyrie_mark"), "the first spear marks the farthest enemy in 7 m");
|
||||
double raw = 100.0;
|
||||
var probe = new LuneUnit { Def = far.Def };
|
||||
Check(GdMath.IsEqualApprox(far.Mitigated(raw, 0), probe.Mitigated(raw, 0) * 1.15), "a marked enemy takes 15 % more damage");
|
||||
}
|
||||
|
||||
void TestUltimate()
|
||||
{
|
||||
LuneUnit brunhild;
|
||||
LuneCombat combat = Arena(new HeroState { HeroId = "held_brunhild", Ultimate = "held" }, out brunhild, At("e01", 1.5), At("held", 6.0), At("e01", 6.8), At("e07", 6.5));
|
||||
LuneUnit hero = combat.Units.First(u => u.Kind == "hero" && u.Team == 1);
|
||||
LuneUnit boss = combat.Units.First(u => u.Def.Id == "e07");
|
||||
Run(combat, LuneContent.UltimateDelay - 0.1);
|
||||
Check(brunhild.UltimateSerial == 0, "no ultimate before 2 s");
|
||||
Run(combat, 0.1);
|
||||
Check(brunhild.UltimateSerial == 1, "Heldenjagd fires with an enemy hero in 7 m");
|
||||
Check(brunhild.Position.DistanceTo(hero.Position) < 1.5, "she leaps next to the hero");
|
||||
Check(hero.Stunned() && !boss.Stunned(), "the hero is stunned, the boss is immune");
|
||||
Check(hero.AttackSpeedFactor() == 0.0 && hero.MovementFactor() == 0.0, "a stunned unit neither attacks nor moves");
|
||||
Run(combat, 1.1);
|
||||
Check(!hero.Stunned(), "the stun ends after 1 s");
|
||||
Run(combat, 8.0);
|
||||
Check(brunhild.UltimateSerial == 1, "once per combat");
|
||||
LuneUnit calm;
|
||||
LuneCombat group = Arena(new HeroState { HeroId = "held_brunhild" }, out calm, At("e01", 3.0), At("e01", 3.5));
|
||||
Run(group, 4.0);
|
||||
Check(calm.UltimateSerial == 0, "Gruppe waits for three enemies at the target");
|
||||
}
|
||||
|
||||
void TestPassiveAndTalents()
|
||||
{
|
||||
LuneUnit brunhild;
|
||||
LuneCombat combat = Arena(new HeroState { HeroId = "held_brunhild", Ultimate = "notfall" }, out brunhild, At("held", 1.5));
|
||||
LuneUnit hero = combat.Units.First(u => u.Kind == "hero" && u.Team == 1);
|
||||
double before = hero.Hp;
|
||||
int guard = 0;
|
||||
while (brunhild.HitCount == 0 && guard++ < 200)
|
||||
combat.Step();
|
||||
double expected = hero.Mitigated(brunhild.Def.Damage * (1.0 + brunhild.DamageBonus()) * LuneCombat.BrunhildHunter, brunhild.Def.AttackType);
|
||||
Check(GdMath.IsEqualApprox(before - hero.Hp, expected), "Heldenjägerin: +25 % against heroes");
|
||||
UnitDef raven = LuneContent.HeroDefinition(new HeroState { HeroId = "held_brunhild", Xp = 1000, Talents = new List<string> { "speerregen", "rabenschwinge" } });
|
||||
Check(GdMath.IsEqualApprox(raven.AttackSpeedBonus, 0.20), "Rabenschwinge: +20 % attack tempo");
|
||||
LuneUnit rain;
|
||||
LuneCombat spears = Arena(new HeroState { HeroId = "held_brunhild", Ultimate = "notfall", Talents = new List<string> { "speerregen", "goetterdaemmerung" } }, out rain,
|
||||
At("e01", 4.0), At("e01", 5.0), At("e01", 6.0), At("e01", 1.0));
|
||||
Run(spears, 3.1);
|
||||
Check(spears.Units.Count(u => u.Effects.ContainsKey("valkyrie_mark")) == 3, "Speerregen: three marked enemies");
|
||||
LuneUnit dusk;
|
||||
LuneCombat stun = Arena(new HeroState { HeroId = "held_brunhild", Ultimate = "sofort", Talents = new List<string> { "speerregen", "goetterdaemmerung" } }, out dusk, At("e01", 2.0));
|
||||
Run(stun, 2.05);
|
||||
LuneUnit victim = stun.Units.First(u => u.Kind == "monster");
|
||||
Run(stun, 1.5);
|
||||
Check(victim.Stunned(), "Götterdämmerung: the stun lasts 2 s");
|
||||
}
|
||||
|
||||
void TestBots()
|
||||
{
|
||||
bool picked = false;
|
||||
for (int seed = 1; seed <= 16 && !picked; seed++)
|
||||
{
|
||||
var probe = new LuneMatch();
|
||||
probe.Setup(new MatchOptions { Seed = seed, HumanSlot = -1, Extended = true });
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
picked |= LuneBot.ProfileFor(probe, slot) == "walkuere";
|
||||
}
|
||||
Check(picked, "extended bots pick Brunhild's profile");
|
||||
var reference = new LuneMatch();
|
||||
reference.Setup(new MatchOptions { Seed = 3, HumanSlot = -1 });
|
||||
bool clean = true;
|
||||
for (int slot = 0; slot < 6; slot++)
|
||||
clean &= !ContentData.ExtraBotProfiles.ContainsKey(LuneBot.ProfileFor(reference, slot));
|
||||
Check(clean, "reference rotation untouched");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2fa3dc51ddee4a919bec93bf34fc29f9
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Luneraria.Core.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// S4: what guests see of the extended rules. Over the in-process loopback a guest receives
|
||||
/// the running glyph of each team (extra values after the building HP of a frame) and the
|
||||
/// stun flag of every unit, and its fog sources match the host's (LuneFog.Vision).
|
||||
/// </summary>
|
||||
public sealed class S4NetSuite : CheckSuite
|
||||
{
|
||||
public override string Name { get { return "s4"; } }
|
||||
|
||||
protected override void RunChecks()
|
||||
{
|
||||
var hub = new LuneLoopback();
|
||||
LuneSession host = hub.Attach(1, new LuneSession());
|
||||
var options = new MatchOptions { Seed = 42, HumanSlot = 0, Extended = true,
|
||||
Bunds = new List<string> { "glutpakt", "wurzelbund", "glutpakt", "wurzelbund", "glutpakt", "wurzelbund" } };
|
||||
Check(host.HostNetwork(options, "Host"), "host starts");
|
||||
LuneSession guest = hub.Attach(10, new LuneSession());
|
||||
guest.JoinNetwork("Gast");
|
||||
guest.OnClientConnected();
|
||||
Check(guest.MatchState != null && guest.MatchState.Extended, "the guest's match has the extended rules");
|
||||
host.PlanBotSeats();
|
||||
host.Submit(Command.Buy("g01"));
|
||||
host.ReadyUp();
|
||||
guest.Submit(Command.Buy(guest.MatchState.BaseIds(guest.MatchState.Players[guest.LocalSlot].Bund)[0]));
|
||||
guest.ReadyUp();
|
||||
for (int i = 0; i < 20 && host.MatchState.Phase != Phase.Combat; i++)
|
||||
host.HostTick(LuneNet.FrameInterval);
|
||||
Check(host.MatchState.Phase == Phase.Combat && guest.MatchState.Phase == Phase.Combat, "both sides are in combat");
|
||||
LuneCombat combat = host.MatchState.Combat;
|
||||
for (int i = 0; i < 10; i++)
|
||||
host.MatchState.StepCombat();
|
||||
combat.GlyphLane[0] = "mid";
|
||||
combat.GlyphUntil[0] = combat.Elapsed + 3.0;
|
||||
LuneUnit target = combat.Units.First(u => u.IsMobile() && u.Team == 1 && u.Alive);
|
||||
target.ApplyEffect("valkyrie_stun", "stun", 1.0, 2.0);
|
||||
host.HostTick(LuneNet.FrameInterval);
|
||||
LuneCombat mirror = guest.MatchState.Combat;
|
||||
Check(mirror.GlyphLane[0] == "mid" && mirror.GlyphLane[1] == "", "the guest knows Blau's glyph on mid");
|
||||
LuneUnit tower;
|
||||
Check(mirror.Buildings.TryGetValue("blau_mid_outer", out tower) && mirror.Glyphed(tower), "the guest sees the mid tower glyphed");
|
||||
LuneUnit copy = mirror.Units.FirstOrDefault(u => u.Id == target.Id);
|
||||
Check(copy != null && copy.ShowsStun(), "the guest sees the stun");
|
||||
Check(mirror.Units.Where(u => u.Id != target.Id && u.IsMobile()).All(u => !u.ShowsStun()), "nobody else looks stunned");
|
||||
int team = 0;
|
||||
int hostSources = LuneFog.Vision(host.MatchState, combat, team).Count;
|
||||
int guestSources = LuneFog.Vision(guest.MatchState, mirror, team).Count;
|
||||
Check(hostSources == guestSources && hostSources > 0, "fog sources agree on host and guest (" + hostSources + "/" + guestSources + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: df9ba1b1ef594679b037f9c14faa13c0
|
||||
|
|
@ -55,7 +55,5 @@ namespace Luneraria.Core.Tests
|
|||
[Test] public void S1Rules() { RunSuite(new S1RulesSuite()); }
|
||||
[Test] public void S2Rules() { RunSuite(new S2RulesSuite()); }
|
||||
[Test] public void S3Rules() { RunSuite(new S3RulesSuite()); }
|
||||
[Test] public void H2Heroes() { RunSuite(new H2HeroSuite()); }
|
||||
[Test] public void S4Net() { RunSuite(new S4NetSuite()); }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ namespace Luneraria.UI.Tests
|
|||
s.Hud.OpenHero();
|
||||
yield return HudSession.Frames(2);
|
||||
s.Sync();
|
||||
Assert.AreEqual(LuneContent.Heroes.Count, s.Hud.HeroDetail.RecruitButtons.Count, "every hero can be recruited");
|
||||
Assert.AreEqual(4, s.Hud.HeroDetail.RecruitButtons.Count, "four heroes to recruit");
|
||||
Assert.IsTrue(s.Hud.HeroDetail.RecruitButtons.ContainsKey("held_sylvara"), "Sylvara can be recruited");
|
||||
s.Click(s.Hud.HeroDetail.RecruitButtons["held_sylvara"]);
|
||||
yield return HudSession.Frames(2);
|
||||
|
|
|
|||
|
|
@ -1,175 +0,0 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using Luneraria.Core;
|
||||
using Luneraria.View;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
namespace Luneraria.UI.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// H2: Brunhild in the real scene (derived from the H1 test). BrunhildHud checks recruiting,
|
||||
/// the tab "Ultimate & Skin" (four rules, two skins), the command slot, her figure with the
|
||||
/// ultimate clip and the Eiswalküre material on body and spear, and the ultimate in combat.
|
||||
/// BrunhildBilder captures the H2 evidence (1920×1080); LUNE_EVIDENCE names the folder below
|
||||
/// docs/port/screenshots (default h2/spiel).
|
||||
/// </summary>
|
||||
public sealed class H2HeroViewsTests
|
||||
{
|
||||
static void Send(HudSession s, Command command)
|
||||
{
|
||||
CommandResult result = s.Match.Submit(HudSession.Human, command);
|
||||
Assert.IsTrue(result.Ok, command.Type + ": " + result.Message);
|
||||
s.Game.RebuildPreview();
|
||||
s.Sync();
|
||||
}
|
||||
|
||||
static LuneUnit Hero(HudSession s)
|
||||
{
|
||||
return s.Match.Combat?.Units.FirstOrDefault(u => u.Kind == "hero" && u.OwnerSlot == HudSession.Human);
|
||||
}
|
||||
|
||||
static LuneUnitView ViewOf(LuneUnit unit)
|
||||
{
|
||||
return UnityEngine.Object.FindObjectsByType<LuneUnitView>(FindObjectsSortMode.None).FirstOrDefault(v => v.Unit == unit);
|
||||
}
|
||||
|
||||
/// <summary>Steps the combat in single simulation steps until the condition holds (or the combat ends).</summary>
|
||||
static IEnumerator Until(HudSession s, Func<bool> done, double limit = 60.0)
|
||||
{
|
||||
double time = 0.0;
|
||||
while (!done() && time < limit && s.Runner.Current == LuneMatchRunner.Stage.Combat)
|
||||
{
|
||||
s.Runner.Advance(.05);
|
||||
time += .05;
|
||||
if ((int)(time / .05) % 10 == 0)
|
||||
yield return null;
|
||||
}
|
||||
yield return HudSession.Frames(2);
|
||||
s.Sync();
|
||||
}
|
||||
|
||||
[UnityTest, Timeout(600000)]
|
||||
public IEnumerator BrunhildHud()
|
||||
{
|
||||
var s = new HudSession();
|
||||
yield return s.Open(1920, 1080, seed: 4, startRound: 6, extraGold: 1500);
|
||||
s.Hud.OpenHero();
|
||||
yield return HudSession.Frames(2);
|
||||
s.Sync();
|
||||
Assert.AreEqual(LuneContent.Heroes.Count, s.Hud.HeroDetail.RecruitButtons.Count, "every hero can be recruited");
|
||||
Assert.IsTrue(s.Hud.HeroDetail.RecruitButtons.ContainsKey("held_brunhild"), "Brunhild can be recruited");
|
||||
s.Click(s.Hud.HeroDetail.RecruitButtons["held_brunhild"]);
|
||||
yield return HudSession.Frames(2);
|
||||
s.Sync();
|
||||
Assert.AreEqual("held_brunhild", s.Me.Draft.Hero?.HeroId, "the recruit button buys Brunhild");
|
||||
s.Hud.OpenHero(LuneHeroDetail.TabUltimate);
|
||||
yield return HudSession.Frames(2);
|
||||
s.Sync();
|
||||
Assert.AreEqual(4, s.Hud.HeroDetail.RuleCards.Count, "four trigger rules");
|
||||
Assert.AreEqual(2, s.Hud.HeroDetail.SkinCards.Count, "standard look and Eiswalküre");
|
||||
Assert.IsTrue(s.Hud.HeroDetail.RuleCards["gruppe"].On, "default rule Gruppe is marked");
|
||||
s.Click(s.Hud.HeroDetail.RuleCards["held"]);
|
||||
yield return HudSession.Frames(2);
|
||||
s.Sync();
|
||||
Assert.AreEqual("held", s.Me.Draft.Hero.Ultimate, "a rule card sets the rule");
|
||||
s.Click(s.Hud.HeroDetail.SkinCards["eiswalkuere"]);
|
||||
yield return HudSession.Frames(2);
|
||||
s.Sync();
|
||||
Assert.AreEqual("eiswalkuere", s.Me.Draft.Hero.Skin, "a skin card sets the skin");
|
||||
Assert.IsTrue(HudSession.Visible(s.Hud.HeroCard.CommandSlot), "the hero card shows the ultimate");
|
||||
StringAssert.Contains("HELDENJAGD", s.Hud.HeroCard.CommandSlot.Text, "the command slot names the rule");
|
||||
s.Hud.CloseModal();
|
||||
s.Game.Key(KeyCode.Space);
|
||||
yield return HudSession.Frames(2);
|
||||
LuneUnit hero = Hero(s);
|
||||
Assert.IsNotNull(hero, "Brunhild fights");
|
||||
Assert.AreEqual("eiswalkuere", hero.Def.Skin);
|
||||
yield return HudSession.Frames(3);
|
||||
LuneUnitView view = ViewOf(hero);
|
||||
Assert.IsNotNull(view, "Brunhild has a view");
|
||||
Animator animator = view.GetComponentInChildren<Animator>();
|
||||
Assert.IsNotNull(animator, "skinned figure");
|
||||
Assert.IsTrue(animator.HasState(0, Animator.StringToHash("ultimate")), "ultimate clip");
|
||||
string[] materials = view.GetComponentsInChildren<Renderer>().SelectMany(r => r.sharedMaterials).Where(m => m != null).Select(m => m.name).Distinct().ToArray();
|
||||
Assert.Contains("AI_Brunhild_Eiswalkuere", materials, "the Blutmond material is dressed: " + string.Join(", ", materials));
|
||||
Assert.Contains("AI_BrunhildSpeer_Eiswalkuere", materials, "both sickles in Blutmond");
|
||||
yield return Until(s, () => hero.UltimateSerial > 0 || !hero.Alive);
|
||||
Assert.IsTrue(hero.UltimateSerial > 0 || !hero.Alive, "the ultimate fires (or Brunhild fell first)");
|
||||
if (hero.UltimateSerial > 0)
|
||||
StringAssert.Contains("GENUTZT", s.Hud.HeroCard.CommandSlot.Text, "the card reports the fired ultimate");
|
||||
s.Close();
|
||||
}
|
||||
|
||||
[UnityTest, Timeout(900000), Explicit("Bildwerkzeug: nur gezielt per -testFilter")]
|
||||
public IEnumerator BrunhildBilder()
|
||||
{
|
||||
string evidence = Environment.GetEnvironmentVariable("LUNE_EVIDENCE");
|
||||
string folder = "docs/port/screenshots/" + (string.IsNullOrEmpty(evidence) ? "h2/spiel" : evidence) + "/";
|
||||
var s = new HudSession();
|
||||
yield return s.Open(1920, 1080, seed: 4, startRound: 6, extraGold: 1500);
|
||||
yield return s.Starter();
|
||||
s.Leave();
|
||||
s.Hud.OpenHero();
|
||||
yield return new WaitForSecondsRealtime(.6f);
|
||||
yield return s.Shot(folder + "01-heldenwahl.png");
|
||||
Send(s, Command.HeroBuy("held_brunhild"));
|
||||
s.Hud.OpenHero(LuneHeroDetail.TabValues);
|
||||
yield return new WaitForSecondsRealtime(.6f);
|
||||
yield return s.Shot(folder + "02-heldenfenster.png");
|
||||
s.Hud.OpenHero(LuneHeroDetail.TabUltimate);
|
||||
yield return new WaitForSecondsRealtime(.8f);
|
||||
yield return s.Shot(folder + "03-ultimate-und-skin.png");
|
||||
s.Hud.CloseModal();
|
||||
yield return new WaitForSecondsRealtime(.3f);
|
||||
LuneUnit waiting = s.View.Preview?.Units.FirstOrDefault(u => u.Kind == "hero" && u.OwnerSlot == HudSession.Human);
|
||||
Assert.IsNotNull(waiting, "Brunhild in the planning preview");
|
||||
s.Rig.LookAt(waiting.Position, 9f, true);
|
||||
yield return new WaitForSecondsRealtime(.6f);
|
||||
yield return s.Shot(folder + "04-aufstellung.png");
|
||||
s.Game.Key(KeyCode.Space);
|
||||
yield return HudSession.Frames(2);
|
||||
LuneUnit hero = Hero(s);
|
||||
yield return Until(s, () => hero.UltimateSerial > 0 || !hero.Alive);
|
||||
s.Driver.Paused = true;
|
||||
s.Rig.LookAt(hero.Position, 11f, true);
|
||||
yield return new WaitForSecondsRealtime(.35f);
|
||||
yield return s.Shot(folder + "05-walkuerensturz.png");
|
||||
s.Rig.LookAt(hero.Position, 11f, true);
|
||||
yield return new WaitForSecondsRealtime(.2f);
|
||||
yield return s.Shot(folder + "06-betaeubt.png");
|
||||
yield return new WaitForSecondsRealtime(.6f);
|
||||
yield return s.Shot(folder + "07-nach-dem-sturz.png");
|
||||
s.Rig.LookAt(hero.Position, 20f, true);
|
||||
yield return new WaitForSecondsRealtime(.4f);
|
||||
yield return s.Shot(folder + "08-kampf-lane.png");
|
||||
s.Driver.Paused = false;
|
||||
yield return s.FinishCombat();
|
||||
// Space is blocked for a moment after a combat (no accidental skip of the planning).
|
||||
float waited = 0f;
|
||||
while (s.Hud.ReadyBlocked() && waited < 5f)
|
||||
{
|
||||
waited += Time.unscaledDeltaTime;
|
||||
yield return null;
|
||||
}
|
||||
Send(s, Command.HeroSkin("eiswalkuere"));
|
||||
s.Hud.OpenHero(LuneHeroDetail.TabUltimate);
|
||||
yield return new WaitForSecondsRealtime(.8f);
|
||||
yield return s.Shot(folder + "09-skin-eiswalkuere-fenster.png");
|
||||
s.Hud.CloseModal();
|
||||
int round = s.Match.RoundNumber;
|
||||
s.Game.Key(KeyCode.Space);
|
||||
yield return HudSession.Frames(2);
|
||||
Assert.AreEqual(LuneMatchRunner.Stage.Combat, s.Runner.Current, "combat of round " + round);
|
||||
hero = Hero(s);
|
||||
yield return s.Fight(9.0);
|
||||
s.Driver.Paused = true;
|
||||
s.Rig.LookAt(hero.Position, 9f, true);
|
||||
yield return new WaitForSecondsRealtime(.5f);
|
||||
yield return s.Shot(folder + "10-skin-eiswalkuere-kampf.png");
|
||||
s.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c13db54917f6463ebc138e12a6922458
|
||||
|
|
@ -188,8 +188,8 @@ namespace Luneraria.UI.Tests
|
|||
yield return s.Open();
|
||||
yield return s.Tap(() => s.Hud.HeroCard);
|
||||
Check(s.Hud.ModalOpen, "hero card opens the hero window");
|
||||
// H1/H2: every hero of the catalogue (G3: three; Sylvara and Brunhild follow).
|
||||
Check(s.Hud.HeroDetail.RecruitButtons.Count == LuneContent.Heroes.Count && LuneContent.Heroes.Count == 5, "all five heroes to recruit (H2)");
|
||||
// H1: every hero of the catalogue (G3: three; Sylvara is the fourth).
|
||||
Check(s.Hud.HeroDetail.RecruitButtons.Count == LuneContent.Heroes.Count && LuneContent.Heroes.Count == 4, "all four heroes to recruit (H1)");
|
||||
int heroCost = LuneContent.Heroes.Values[0].Cost;
|
||||
bool unaffordable = s.Match.GoldOf(HudSession.Human) < heroCost;
|
||||
Check(!unaffordable || s.Hud.HeroDetail.RecruitButtons.Values.All(b => b.Disabled), "recruiting blocked without gold");
|
||||
|
|
|
|||
|
|
@ -1,87 +0,0 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using Luneraria.Core;
|
||||
using Luneraria.View;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
namespace Luneraria.UI.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// S4 in the real scene: the fog of war darkens the terrain outside the team's vision (light
|
||||
/// at the own base, dark at the enemy base), and a stunned unit shows the gold ring over its
|
||||
/// head. S4Bilder (explicit) captures both at 1920×1080; LUNE_EVIDENCE names the folder below
|
||||
/// docs/port/screenshots (default s4/spiel).
|
||||
/// </summary>
|
||||
public sealed class S4PolishViewsTests
|
||||
{
|
||||
static float AlphaAt(LuneFogOverlay fog, Vec2 point)
|
||||
{
|
||||
int side = Mathf.CeilToInt((float)(LuneMap.HalfExtent * 2.0) / LuneFogOverlay.Cell) + 1;
|
||||
int column = Mathf.Clamp(Mathf.RoundToInt((float)((point.X + LuneMap.HalfExtent) / LuneFogOverlay.Cell)), 0, side - 1);
|
||||
int row = Mathf.Clamp(Mathf.RoundToInt((float)((point.Y + LuneMap.HalfExtent) / LuneFogOverlay.Cell)), 0, side - 1);
|
||||
return fog.Alpha[row * side + column];
|
||||
}
|
||||
|
||||
static IEnumerator Fight(HudSession s)
|
||||
{
|
||||
yield return s.Starter();
|
||||
s.Leave();
|
||||
s.Game.Key(KeyCode.Space);
|
||||
yield return HudSession.Frames(2);
|
||||
yield return s.Fight(4.0);
|
||||
yield return HudSession.Frames(4);
|
||||
}
|
||||
|
||||
[UnityTest, Timeout(600000)]
|
||||
public IEnumerator S4Views()
|
||||
{
|
||||
var s = new HudSession();
|
||||
yield return s.Open(1920, 1080, seed: 4, startRound: 6, extraGold: 500, extended: true);
|
||||
yield return Fight(s);
|
||||
LuneFogOverlay fog = s.Game.View.Fog;
|
||||
Assert.IsNotNull(fog, "an extended match with a human seat has the fog overlay");
|
||||
Assert.IsTrue(fog.gameObject.activeSelf && fog.Refreshes > 0, "the fog is active and refreshed");
|
||||
Assert.Less(AlphaAt(fog, s.Match.Map.CorePosition(0)), .05f, "the own Ancient stands in light");
|
||||
Assert.Greater(AlphaAt(fog, s.Match.Map.CorePosition(1)), .5f, "the enemy Ancient lies in the fog");
|
||||
LuneUnit victim = s.Match.Combat.Units.First(u => u.IsMobile() && u.Alive && u.Team == 0);
|
||||
victim.ApplyEffect("valkyrie_stun", "stun", 1.0, 3.0);
|
||||
yield return HudSession.Frames(3);
|
||||
LuneUnitView view = UnityEngine.Object.FindObjectsByType<LuneUnitView>(FindObjectsSortMode.None).First(v => v.Unit == victim);
|
||||
Transform ring = view.transform.Find("StunRing");
|
||||
Assert.IsTrue(ring != null && ring.gameObject.activeSelf, "a stunned unit shows the stun ring");
|
||||
s.Close();
|
||||
var reference = new HudSession();
|
||||
yield return reference.Open(1920, 1080, seed: 4, startRound: 6, extraGold: 500);
|
||||
yield return Fight(reference);
|
||||
Assert.IsTrue(reference.Game.View.Fog == null || !reference.Game.View.Fog.gameObject.activeSelf, "no fog under the reference rules");
|
||||
reference.Close();
|
||||
}
|
||||
|
||||
[UnityTest, Timeout(600000), Explicit("Bildwerkzeug: nur gezielt per -testFilter")]
|
||||
public IEnumerator S4Bilder()
|
||||
{
|
||||
string evidence = Environment.GetEnvironmentVariable("LUNE_EVIDENCE");
|
||||
string folder = "docs/port/screenshots/" + (string.IsNullOrEmpty(evidence) ? "s4/spiel" : evidence) + "/";
|
||||
var s = new HudSession();
|
||||
yield return s.Open(1920, 1080, seed: 4, startRound: 6, extraGold: 500, extended: true);
|
||||
yield return Fight(s);
|
||||
s.Driver.Paused = true;
|
||||
s.Rig.LookAt(new Vec2(0.0, 0.0), 60f, true);
|
||||
yield return new WaitForSecondsRealtime(.6f);
|
||||
yield return s.Shot(folder + "01-nebel-uebersicht.png");
|
||||
LuneUnit front = s.Match.Combat.Units.Where(u => u.IsMobile() && u.Alive && u.Team == 0 && u.Lane == "mid").OrderByDescending(u => u.Progress).First();
|
||||
s.Rig.LookAt(front.Position, 22f, true);
|
||||
yield return new WaitForSecondsRealtime(.5f);
|
||||
yield return s.Shot(folder + "02-nebelgrenze-mid.png");
|
||||
foreach (LuneUnit unit in s.Match.Combat.Units.Where(u => u.IsMobile() && u.Alive && u.Position.DistanceTo(front.Position) < 6.0))
|
||||
unit.ApplyEffect("valkyrie_stun", "stun", 1.0, 10.0);
|
||||
s.Rig.LookAt(front.Position, 9f, true);
|
||||
yield return new WaitForSecondsRealtime(.6f);
|
||||
yield return s.Shot(folder + "03-betaeubung.png");
|
||||
s.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 62a4209ed52348a182c63f43dc65a85b
|
||||
|
|
@ -352,11 +352,7 @@ namespace Luneraria.UI
|
|||
portrait.style.height = 170f;
|
||||
column.Add(portrait);
|
||||
portrait.ShowModel(spec.Model, true);
|
||||
// H2: five heroes share the window; the columns get more compact.
|
||||
bool compact = LuneContent.Heroes.Count > 4;
|
||||
Label title = LuneUi.Clip(LuneUi.Label(spec.Name, "HudTitle", column));
|
||||
if (compact)
|
||||
title.style.fontSize = 24f;
|
||||
LuneUi.Label(spec.Name, "HudTitle", column);
|
||||
LuneUi.Label(spec.Title, "HudMuted", column);
|
||||
UnitDef definition = model.HeroDefinition(new HeroState { HeroId = heroId });
|
||||
VisualElement role = LuneUi.Box(false, 5f, column);
|
||||
|
|
@ -366,7 +362,7 @@ namespace Luneraria.UI
|
|||
{
|
||||
VisualElement line = LuneUi.Box(false, 6f, column);
|
||||
LuneUi.Glyph(entry[0], LuneUiTheme.Muted, 13f, line);
|
||||
LuneUi.Label(entry[1], "HudMuted", line).style.minWidth = compact ? 88f : 104f;
|
||||
LuneUi.Label(entry[1], "HudMuted", line).style.minWidth = 104f;
|
||||
LuneUi.Clip(LuneUi.Label(entry[2], "HudText", line)).style.flexGrow = 1f;
|
||||
}
|
||||
Label summary = LuneUi.Wrap(LuneUi.Label(spec.Summary, "HudText", column));
|
||||
|
|
|
|||
|
|
@ -1,91 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using Luneraria.Core;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Luneraria.View
|
||||
{
|
||||
/// <summary>
|
||||
/// S4 fog of war in the terrain: a grid over the map (2 m cells) that follows the ground and
|
||||
/// darkens every point no vision source of the viewer's team reaches (LuneFog.Vision: own
|
||||
/// units 9 m, own buildings 10 m, wards 12 m). The alpha has a soft 2 m edge and is
|
||||
/// recomputed ten times a second. Presentation only; the rules never read it.
|
||||
/// </summary>
|
||||
public sealed class LuneFogOverlay : MonoBehaviour
|
||||
{
|
||||
public const float Cell = 2f;
|
||||
public const float Darkness = .55f;
|
||||
public const float Edge = 2f;
|
||||
public const float Interval = .1f;
|
||||
|
||||
Mesh _mesh;
|
||||
Vec2[] _points;
|
||||
Color32[] _colors;
|
||||
float _timer;
|
||||
|
||||
/// <summary>Darkness of every grid point (0 = seen), for tests.</summary>
|
||||
public float[] Alpha { get; private set; }
|
||||
public int Refreshes { get; private set; }
|
||||
|
||||
public void Build(LuneGround ground, Material material)
|
||||
{
|
||||
int side = Mathf.CeilToInt((float)(LuneMap.HalfExtent * 2.0) / Cell) + 1;
|
||||
var vertices = new Vector3[side * side];
|
||||
_points = new Vec2[side * side];
|
||||
for (int row = 0; row < side; row++)
|
||||
{
|
||||
for (int column = 0; column < side; column++)
|
||||
{
|
||||
var map = new Vec2(-LuneMap.HalfExtent + column * Cell, -LuneMap.HalfExtent + row * Cell);
|
||||
float height = ground != null ? ground.StandHeight(map) : 0f;
|
||||
_points[row * side + column] = map;
|
||||
vertices[row * side + column] = LuneSpace.World(map, height + .45f);
|
||||
}
|
||||
}
|
||||
var triangles = new List<int>();
|
||||
for (int row = 0; row + 1 < side; row++)
|
||||
{
|
||||
for (int column = 0; column + 1 < side; column++)
|
||||
{
|
||||
int a = row * side + column;
|
||||
triangles.AddRange(new[] { a, a + side, a + 1, a + 1, a + side, a + side + 1 });
|
||||
}
|
||||
}
|
||||
_colors = new Color32[vertices.Length];
|
||||
Alpha = new float[vertices.Length];
|
||||
_mesh = new Mesh { name = "FogOverlay", indexFormat = UnityEngine.Rendering.IndexFormat.UInt32 };
|
||||
_mesh.SetVertices(vertices);
|
||||
_mesh.SetTriangles(triangles, 0);
|
||||
_mesh.SetColors(_colors);
|
||||
_mesh.RecalculateBounds();
|
||||
gameObject.AddComponent<MeshFilter>().sharedMesh = _mesh;
|
||||
var renderer = gameObject.AddComponent<MeshRenderer>();
|
||||
renderer.sharedMaterial = material;
|
||||
renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
|
||||
renderer.receiveShadows = false;
|
||||
}
|
||||
|
||||
/// <summary>Recomputes the darkness at most every Interval seconds (force: now).</summary>
|
||||
public void Tick(float dt, List<KeyValuePair<Vec2, double>> sources, bool force = false)
|
||||
{
|
||||
_timer -= dt;
|
||||
if (!force && _timer > 0f)
|
||||
return;
|
||||
_timer = Interval;
|
||||
Refreshes++;
|
||||
for (int i = 0; i < _points.Length; i++)
|
||||
{
|
||||
double best = double.PositiveInfinity;
|
||||
foreach (KeyValuePair<Vec2, double> source in sources)
|
||||
{
|
||||
double gap = _points[i].DistanceTo(source.Key) - source.Value;
|
||||
if (gap < best)
|
||||
best = gap;
|
||||
}
|
||||
float t = Mathf.Clamp01((float)(best + Edge * .5) / Edge);
|
||||
Alpha[i] = Darkness * t;
|
||||
_colors[i] = new Color32(0, 0, 0, (byte)Mathf.RoundToInt(Alpha[i] * 255f));
|
||||
}
|
||||
_mesh.SetColors(_colors);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a539f6fdd87d43728442d53d45a23e97
|
||||
|
|
@ -74,29 +74,6 @@ namespace Luneraria.View
|
|||
/// <summary>Ids of the units hidden in the fog this frame.</summary>
|
||||
public HashSet<int> Hidden { get; private set; } = new HashSet<int>();
|
||||
static readonly HashSet<int> Empty = new HashSet<int>();
|
||||
/// <summary>S4: the darkening grid of the fog (null until a fogged match runs).</summary>
|
||||
public LuneFogOverlay Fog { get; private set; }
|
||||
|
||||
void FogTick(LuneMatch match, float dt)
|
||||
{
|
||||
bool on = FogSlot >= 0 && FogSlot < match.Players.Count && match.Extended && Library != null && Library.FogOverlay != null;
|
||||
if (!on)
|
||||
{
|
||||
if (Fog != null && Fog.gameObject.activeSelf)
|
||||
Fog.gameObject.SetActive(false);
|
||||
return;
|
||||
}
|
||||
if (Fog == null)
|
||||
{
|
||||
var go = new GameObject("FogOverlay");
|
||||
go.transform.SetParent(transform, false);
|
||||
Fog = go.AddComponent<LuneFogOverlay>();
|
||||
Fog.Build(Library.Ground, Library.FogOverlay);
|
||||
}
|
||||
if (!Fog.gameObject.activeSelf)
|
||||
Fog.gameObject.SetActive(true);
|
||||
Fog.Tick(dt, LuneFog.Vision(match, _combat, match.Players[FogSlot].Team));
|
||||
}
|
||||
/// <summary>Main-thread cost of the last frame's view update (milliseconds).</summary>
|
||||
public double LastSyncMs { get; private set; }
|
||||
readonly System.Diagnostics.Stopwatch _clock = new System.Diagnostics.Stopwatch();
|
||||
|
|
@ -140,7 +117,6 @@ namespace Luneraria.View
|
|||
Hidden = FogSlot >= 0 && FogSlot < match.Players.Count && showUnits
|
||||
? LuneFog.Hidden(match, _combat, match.Players[FogSlot].Team, planning, planning ? match.Players[FogSlot].Draft : null)
|
||||
: Empty;
|
||||
FogTick(match, dt);
|
||||
float alpha = Driver.Runner.Current == LuneMatchRunner.Stage.Combat ? (float)Driver.Runner.Clock.Alpha : 1f;
|
||||
if (showUnits)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -38,8 +38,6 @@ namespace Luneraria.View
|
|||
public Material HeroRing;
|
||||
/// <summary>H1: expanding ring of a hero's ultimate (moon light).</summary>
|
||||
public Material MoonBurst;
|
||||
/// <summary>S4: fog of war overlay (Luneraria/FogOverlay, vertex alpha).</summary>
|
||||
public Material FogOverlay;
|
||||
public Material BarBack;
|
||||
public Material[] BarFill = new Material[3];
|
||||
public Material[] Bolt = new Material[3];
|
||||
|
|
|
|||
|
|
@ -30,8 +30,6 @@ namespace Luneraria.View
|
|||
/// <summary>H1: expanding moon ring of an ultimate (seconds left, 0 = none).</summary>
|
||||
Transform _burst;
|
||||
float _burstTime;
|
||||
/// <summary>S4: a small gold ring circling over the head of a stunned unit.</summary>
|
||||
Transform _stun;
|
||||
float _attackFlash;
|
||||
float _time;
|
||||
Vector3 _lastVisual;
|
||||
|
|
@ -118,9 +116,6 @@ namespace Luneraria.View
|
|||
_burst.localPosition = new Vector3(0f, .08f, 0f);
|
||||
_burst.gameObject.SetActive(false);
|
||||
}
|
||||
_stun = Marker("StunRing", library.RingRound, library.HeroRing);
|
||||
_stun.localScale = new Vector3(.55f, 1f, .55f);
|
||||
_stun.gameObject.SetActive(false);
|
||||
transform.position = Ground(unit.Position);
|
||||
transform.rotation = LuneSpace.Facing(unit.Facing);
|
||||
_lastVisual = transform.position;
|
||||
|
|
@ -169,14 +164,6 @@ namespace Luneraria.View
|
|||
if (ultimate && _burst != null)
|
||||
_burstTime = BurstSeconds;
|
||||
Burst(dt);
|
||||
bool stunned = Unit.Alive && Unit.ShowsStun();
|
||||
if (_stun.gameObject.activeSelf != stunned)
|
||||
_stun.gameObject.SetActive(stunned);
|
||||
if (stunned)
|
||||
{
|
||||
_stun.localPosition = new Vector3(0f, _height + .15f, 0f);
|
||||
_stun.Rotate(0f, 360f * dt, 0f, Space.Self);
|
||||
}
|
||||
if (attacked || ability)
|
||||
_attackFlash = .28f;
|
||||
_attackFlash = Mathf.Max(0f, _attackFlash - dt);
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
|
@ -106,5 +106,3 @@ Die Fähigkeiten setzen die **Ultimate-Bedingungen** aus [IDEEN.md](IDEEN.md) vo
|
|||
**Sylvara mit einem Varianten-Skin (Blutmond).** Ziel: das Slot-System einmal vollständig prüfen (Körper, Waffen-Prop, Umhang, VFX-Palette, Teamfarbe, Variantenmaterial), bevor weitere Helden folgen.
|
||||
|
||||
**Umgesetzt in H1** (10. Oktober 2026): Sylvara als voller Held mit Ultimate-Auslöser und Blutmond-Skin, siehe [H1-SYLVARA.md](H1-SYLVARA.md). Werte nach der Balance-Abstimmung: 1.450 Leben, Sprung nur auf ungeschützte Ziele, Mondschleier, Tanz 220 %.
|
||||
|
||||
**Umgesetzt in H2** (11. Oktober 2026): Brunhild als voller Held mit Markierung, Betäubung und Skin Eiswalküre, siehe [H2-BRUNHILD.md](H2-BRUNHILD.md). Abweichung vom Konzept: Der Speerwurf trifft den fernsten Gegner in 7 m (statt eines beliebigen Ziels), und nach dem Sturz schützt der Walkürenschild.
|
||||
|
|
|
|||
|
|
@ -1,91 +0,0 @@
|
|||
# H2 · Brunhild, die Walküre
|
||||
|
||||
Stand: 11. Oktober 2026 · Branch `luneraria/h2-brunhild` (von `luneraria/s3-strategie`).
|
||||
Grundlage: [CHAMPIONS-KONZEPT.md](CHAMPIONS-KONZEPT.md) und das Muster aus [H1-SYLVARA.md](H1-SYLVARA.md). Auftrag: „weiter“; Brunhild war die Empfehlung seit S1.
|
||||
|
||||

|
||||
|
||||
## Kurzfassung
|
||||
|
||||
- **Neue Heldin:** Brunhild ist der fünfte kaufbare Held, Heldenjägerin in der Nahkampfreihe, 260 Gold. Sie ist das Gegenstück zu Siegfried.
|
||||
- **Kit:**
|
||||
- Heldenjägerin (passiv)
|
||||
- Speerwurf mit Markierung
|
||||
- Ultimate Walkürensturz: Sprung, Flächenschaden, Betäubung
|
||||
- zwei Talentstufen
|
||||
- vier Auslöser
|
||||
- **Neue Regelbausteine** (wirken nur durch Brunhild, deshalb bleibt die Referenz unverändert):
|
||||
- **Markierung** (`vulnerable`): Das Ziel nimmt mehr Schaden.
|
||||
- **Betäubung** (`stun`): Das Ziel greift weder an noch bewegt es sich. Bosse sind immun.
|
||||
- **Skin:** „Eiswalküre“ (Variante): Der karmesinrote Umhang wird eisblau, das Gold kühler, Haut und Haar bleiben.
|
||||
- **Figur:** Meshy-Figur mit dem Speer als eigenem Modell; das Ultimate nutzt den Clip „Jump Attack“. Verbrauch: 113 Credits, danach sind 110 übrig.
|
||||
- **Bots:** Mit erweiterten Regeln wählen sie das Profil `walkuere` (acht Profile in der Rotation, Schritt 5, weiterhin sechs verschiedene je Partie).
|
||||
|
||||
## Regeln
|
||||
|
||||
| Teil | Wirkung |
|
||||
| --- | --- |
|
||||
| Grundwerte | 2.000 Leben, 42 Schaden, Durchschlag gegen Schwer, Reichweite 2,0 m (Speer), Tempo 2,4, Rolle Nahkampf |
|
||||
| Heldenjägerin (passiv) | +25 % Schaden gegen Helden und Angriffschampions, auch bei Speer und Sturz |
|
||||
| Speerwurf | Ab 3 s alle 6 s: 120 % Schaden am fernsten Gegner in 7 m. Er ist 4 s markiert und nimmt 15 % mehr Schaden |
|
||||
| Walkürensturz (Ultimate) | Einmal pro Kampf, frühestens nach 2 s. Sprung auf das Ziel: zuerst ein Held oder Angriffschampion in 7 m, dann der markierte Gegner, dann ihr Ziel. 200 % Schaden an allen Gegnern in 3 m und 1 s Betäubung (Bosse immun). Danach Walkürenschild: Schild von 30 % ihrer Lebenspunkte für 5 s |
|
||||
| Auslöser | **Gruppe** (Standard): 3 Gegner in 4 m um das Ziel · **Heldenjagd:** ein Held oder Champion in 7 m · **Notfall:** unter 40 % Leben · **Sofort:** erster Gegner in 7 m |
|
||||
| Talente Stufe 3 | **Walkürenblut:** Speerwurf gegen Helden und Champions doppelt · **Speerregen:** die drei fernsten Gegner |
|
||||
| Talente Stufe 6 | **Rabenschwinge:** +20 % Angriffstempo · **Götterdämmerung:** 2 s Betäubung in 4 m |
|
||||
|
||||
## Balance
|
||||
|
||||
Probe-Vergleich (`dotnet run -c Release --project tools/dotnet/Luneraria.Balance 40`): gleiches Bot-Profil, nur der Held getauscht, 80 Partien.
|
||||
|
||||
| Fassung | Brunhild | Überlebenszeit im Kampf |
|
||||
| --- | --- | --- |
|
||||
| Erste Fassung (1.700 Leben, kein Schild) | 0 % | fällt in jedem Kampf nach etwa 25 s (Ringborke etwa 42 s, Funkenlanze etwa 51 s) |
|
||||
| Mit 2.000 Leben und Walkürenschild | **50 %**, wie Ringborke, Funkenlanze und Sylvara | – |
|
||||
|
||||
Die Siegquoten einzelner Bot-Profile in der Rotation schwanken stark mit den Teamkombinationen (15 bis 83 von 90) und taugen deshalb nicht für Heldenvergleiche. Maßgeblich ist der Probe-Vergleich.
|
||||
|
||||
## Technik
|
||||
|
||||
- **Kern:**
|
||||
- `ContentData`: Held, Talente, Auslöser, Skin, Bot-Profil.
|
||||
- `LuneCombat.BrunhildStep` / `BrunhildSpear`: Der Sprung nutzt dieselbe Landung wie Sylvaras Mondsprung.
|
||||
- `LuneUnit`: `vulnerable` in `Mitigated`, `Stunned()` in Angriffstempo und Bewegung.
|
||||
- **Figur:**
|
||||
- `tools/meshy/brunhild/figure.json`, Speer als Prop in der rechten Hand.
|
||||
- Export 23/23, zwei Läufe byteidentisch.
|
||||
- **Skin:**
|
||||
- `tools/meshy/brunhild/skins.json`.
|
||||
- `skin_variant.py` kann jetzt Farbbänder über 0° (Rot) und eine Mindestsättigung, damit Hauttöne unverändert bleiben.
|
||||
- **HUD:** Bei mehr als vier Helden werden die Spalten der Heldenwahl kompakter (Name 24 px, schmalere Beschriftung).
|
||||
|
||||
## Tests und Nachweise
|
||||
|
||||
| Prüfung | Ergebnis |
|
||||
| --- | --- |
|
||||
| Kern (.NET 8) | 619/619, darunter **h2 22**: Kauf, Regel, Skin; Speer erst ab 3 s, markiert den fernsten Gegner, +15 % erlittener Schaden; Sturz bei Heldenjagd, Landung am Helden, Betäubung (Boss immun), keine Bewegung und kein Angriff, Ende nach 1 s, einmal pro Kampf; Gruppe wartet; +25 % gegen Helden; Talente; Bot-Profil nur erweitert |
|
||||
| Golden und Fingerabdrücke | 0 Abweichungen; `DCE95C96556F3A1A` bei 30/60/120 fps und unbegrenzt unverändert |
|
||||
| Unity EditMode | 34/34 |
|
||||
| Unity PlayMode | 19/19, neu `H2HeroViewsTests.BrunhildHud`: fünf Helden, Regel- und Skin-Karten, Befehlsplatz „HELDENJAGD“, Figur mit Ultimate-Clip, Eiswalküre-Material an Körper und Speer, Ultimate im Kampf. Verify A–I 718/0; die Prüfung der Heldenwahl erwartet jetzt fünf Helden |
|
||||
| Asset-Prüfung | Export 23/23, byteidentisch in zwei Läufen |
|
||||
| Player-Selbsttest | macOS 30/30 |
|
||||
| Leistung | A/B im selben Player, abwechselnd, je sechs Heldinnen. Karte: Brunhild 138,1 / 142,9 / 143,3 fps, Sylvara 142,9 / 141,7 / 141,2 fps, Mittel gleich (141,4 zu 141,9). Mid nah: 153,3 / 157,1 / 157,8 zu 161,8 / 162,5 / 163,2 fps, also −4 %. Brunhild hat weniger Dreiecke (28.706 zu 30.782); der Unterschied kommt aus dem Kampfgeschehen im Nahbild. Rohdaten in `docs/port/logs/h2/` |
|
||||
|
||||
**Bilder** in `docs/port/screenshots/h2/spiel/`:
|
||||
1. Heldenwahl mit fünf Helden
|
||||
2. Heldenfenster
|
||||
3. Ultimate und Skin
|
||||
4. Aufstellung
|
||||
5. Walkürensturz
|
||||
6. Betäubt
|
||||
7. Nach dem Sturz
|
||||
8. Lane
|
||||
9. Eiswalküre im Fenster
|
||||
10. Eiswalküre im Kampf
|
||||
|
||||
Das Figurenblatt liegt in `figur/`.
|
||||
|
||||
## Offene Punkte
|
||||
|
||||
- **Betäubung sichtbar machen:** Betäubte Einheiten erkennt man bisher nur daran, dass sie stillstehen.
|
||||
- **Brunhild und Siegfried als Paar:** Ein Götterdämmerung-Set-Skin ist möglich, sobald Siegfried als Held kommt.
|
||||
- **Meshy-Guthaben:** 110 Credits übrig, das reicht für einen weiteren Helden mit Waffe knapp nicht. Die nächste Monatsgutschrift kommt laut Meshy im November.
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
# Hauptstand · 11. Oktober 2026
|
||||
|
||||
Stand: 11. Oktober 2026 · Branch `main` (vorgerückt) · Tag `stand-2026-10-11`.
|
||||
|
||||
Champions of Luneraria in Unity mit allen Phasen bis S4.
|
||||
- **Zusammenführung:** `main` enthielt bisher nur den ersten Commit („Unity-Projekt angelegt“). Alle Phasen-Branches liegen in einer Linie; `main` wurde ohne Konflikte auf den Endstand vorgerückt.
|
||||
- **Phasen-Branches:** Sie bleiben als Nachweis erhalten.
|
||||
|
||||
## Was der Stand enthält
|
||||
|
||||
| Phase | Inhalt | Doku |
|
||||
| --- | --- | --- |
|
||||
| U1–U5.5 | Port aus Godot mit Verhaltensgleichheit, Welt, HUD, Netzwerk, PBR-Grafik, alle zehn Glutpakt-Truppen als Meshy-Figuren | `docs/port/PORT-STATUS.md`, `PORT-QA.md` |
|
||||
| Konzept | Ideensammlung Strategie/MOBA, sieben neue Champions, Skin-Regeln | [IDEEN.md](IDEEN.md), [CHAMPIONS-KONZEPT.md](CHAMPIONS-KONZEPT.md) |
|
||||
| H1 | Sylvara: Ultimate-Auslöser in der Planung, Skin-System (Blutmond) | [H1-SYLVARA.md](H1-SYLVARA.md) |
|
||||
| S1 | Regelschalter „Erweitert“: Söldner-Einkommen, Kasernen, Rückkauf, Mondsegen | [S1-STRATEGIE.md](S1-STRATEGIE.md) |
|
||||
| S2 | Glyphe, Item-Rezepte, Ancient-Stufen, Grottenjagd der Bots | [S2-STRATEGIE.md](S2-STRATEGIE.md) |
|
||||
| S3 | frühe Bot-Helden (Rotationsfehler behoben), Neutrallager, Fog of War mit Spähern | [S3-STRATEGIE.md](S3-STRATEGIE.md) |
|
||||
| H2 | Brunhild: Markierung, Betäubung, Skin Eiswalküre | [H2-BRUNHILD.md](H2-BRUNHILD.md) |
|
||||
| S4 | Betäubung sichtbar, Nebel im Gelände, Glyphe und Betäubung für Gäste | [S4-FEINSCHLIFF.md](S4-FEINSCHLIFF.md) |
|
||||
|
||||
## Spielen
|
||||
|
||||
- **Startbildschirm:** „Allein spielen“, „Hosten“ oder „Beitreten“. Der Schalter **REGELN** steht auf ERWEITERT (Legion TD 2, Dota 2, LoL); REFERENZ spielt die Regeln des Godot-Originals.
|
||||
- **Helden (5):** Ringborke, Quellgeflecht, Funkenlanze, Sylvara, Brunhild. Ultimate-Auslöser und Skin wählst du im Heldenfenster unter „Ultimate & Skin“.
|
||||
- **Team-Aktionen im Teampanel links:** Glyphe, Ancient-Stufe, Späher, Lager-Übersicht.
|
||||
- **macOS-Player:** `Builds/macOS/Luneraria.app` im Arbeitsordner, aus dem der Stand gebaut wurde. Ein frischer Bau entsteht mit `LunePlayerBuild.BuildMac`.
|
||||
|
||||
## Prüfstand
|
||||
|
||||
| Prüfung | Ergebnis |
|
||||
| --- | --- |
|
||||
| Kern (.NET 8) | 627/627: content 77, core 91, m2 73, golden 157, determinism 6, net 43, net_rounds 12, h1 42, s1 31, s2 34, s3 31, h2 22, s4 8 |
|
||||
| Parität zur Godot-Referenz | Golden 51.221 Werte, 0 Abweichungen; Bot-Fingerabdrücke `DCE95C96556F3A1A` (Seed 2) und `7B8E43AEFC0D60C5` (Seed 9 ab Welle 21) unverändert. Alle neuen Regeln wirken nur mit `MatchOptions.Extended` |
|
||||
| Unity | EditMode 35/35, PlayMode 20/20, Verify A–I 718/0, Player-Selbsttest 30/30 |
|
||||
|
||||
## Offene Punkte
|
||||
|
||||
- **Build-Module für Windows und Linux** (Zielplattformen) fehlen weiterhin; Installation nur nach Freigabe.
|
||||
- **Git LFS:** Das Repo wächst mit jeder Figur um rund 40 bis 60 MB.
|
||||
- **Weitere Helden des Konzepts:** Thalion, Ilyra, Isolde, Aurelian, Rowan (Meshy-Guthaben 110 Credits, nächste Gutschrift im November).
|
||||
- **Regeln, die du entscheiden musst:**
|
||||
- manuelles Ultimate im Kampf (braucht Kampfbefehle im Netz)
|
||||
- Quellgeflecht-Dominanz in Probe-Vergleichen (Referenzbalance)
|
||||
- kürzere Partien mit Lagern beobachten
|
||||
- **Netz:** Der Nebel ist Darstellung, keine Geheimhaltung; Gäste erhalten alle Einheiten.
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# S4 · Feinschliff: Betäubung, Nebel im Gelände, Glyphe für Gäste
|
||||
|
||||
Stand: 11. Oktober 2026 · Branch `luneraria/s4-feinschliff` (von `luneraria/h2-brunhild`).
|
||||
Auftrag: „1 und 2 durchführen“. Punkt 1 ist der Feinschliff aus S3 und H2 ohne Meshy-Credits, Punkt 2 die Zusammenführung zum Hauptstand (siehe unten).
|
||||
|
||||

|
||||
|
||||
## Inhalt
|
||||
|
||||
| Punkt | Umsetzung |
|
||||
| --- | --- |
|
||||
| Betäubung sichtbar | Ein goldener Ring kreist über dem Kopf jeder betäubten Einheit (`LuneUnitView`, Marker `StunRing`). Gäste sehen ihn ebenfalls: Der Host überträgt den Zustand als Bit 18 in den Flags des Kampfrahmens (`LuneUnit.NetStunned`, `ShowsStun()`) |
|
||||
| Nebel im Gelände | `LuneFogOverlay` ist ein Gitter aus 2-m-Zellen über die ganze Karte, das dem Gelände folgt (0,45 m darüber). Die Deckkraft der Gitterpunkte wird zehnmal pro Sekunde aus den Sichtquellen berechnet, mit weicher Kante von 2 m: außerhalb jeder Sicht 55 % Nachtblau, innerhalb klar. Shader `Luneraria/FogOverlay` (transparent, Deckkraft aus den Vertexfarben). Die Sichtquellen kommen aus `LuneFog.Vision`; dieselbe Funktion steuert das Ausblenden. Der Nebel ist nur aktiv mit erweiterten Regeln und einem menschlichen Sitz |
|
||||
| Glyphe für Gäste | Der Kampfrahmen hängt an die Gebäude-Lebenspunkte vier Werte an: je Team die Lane der laufenden Glyphe und die Restsekunden. Gäste setzen damit `GlyphLane`/`GlyphUntil` und sehen den Glyphen-Ring. Ältere Gäste lesen nur die Gebäudewerte und ignorieren den Rest |
|
||||
|
||||
Die Simulation ist unberührt: Betäubungs-Ring, Nebel-Gitter und Gast-Glyphe sind reine Darstellung.
|
||||
|
||||
## Tests und Nachweise
|
||||
|
||||
| Prüfung | Ergebnis |
|
||||
| --- | --- |
|
||||
| Kern (.NET 8) | 627/627, darunter **s4 8**: Über die Loopback-Verbindung sieht der Gast die Glyphe von Blau auf Mid, den Mid-Turm als geschützt und die Betäubung genau einer Einheit; Host und Gast zählen gleich viele Sichtquellen |
|
||||
| Golden und Fingerabdrücke | 0 Abweichungen; `DCE95C96556F3A1A` unverändert |
|
||||
| Unity EditMode | 35/35 |
|
||||
| Unity PlayMode | 20/20, neu `S4PolishViewsTests.S4Views`: Nebel aktiv, eigener Ancient im Licht (< 5 %), gegnerischer Ancient im Nebel (> 50 %), Betäubungs-Ring sichtbar, kein Nebel unter den Referenzregeln. Verify A–I 718/0 |
|
||||
| Player-Selbsttest | macOS 30/30 |
|
||||
| Leistung | Benchmark (Bot-Partie, sechs Brunhilds): Karte 148,6–151,5 fps, Mid nah 163,4–167,3 fps, Ansichten 0,19–0,22 ms. Der Benchmark hat keinen menschlichen Sitz, der Nebel ist dort also aus. Nicht gemessene Schätzung für den Nebel: 1.521 Gitterpunkte gegen 50–90 Sichtquellen, zehnmal pro Sekunde |
|
||||
|
||||
Bilder in `docs/port/screenshots/s4/spiel/`:
|
||||
1. Nebel in der Übersicht
|
||||
2. Nebelgrenze auf Mid
|
||||
3. Betäubung
|
||||
|
|
@ -312,29 +312,6 @@ Die Glutpakt-Arbeit entstand als Kette aufeinander aufbauender Zweige (`lunerari
|
|||
| Bild | `screenshots/s3/spiel/` |
|
||||
| Commits | `luneraria/s3-strategie` (S3A `e756a90`) |
|
||||
|
||||
## H2 · Brunhild
|
||||
|
||||
| Punkt | Ergebnis |
|
||||
| --- | --- |
|
||||
| Tests | Kern .NET 619/619 (neu `h2` 22), EditMode 34/34, PlayMode 19/19 (neu `BrunhildHud`), Verify A–I 718/0 (Heldenwahl erwartet fünf Helden), Player-Selbsttest 30/30, Export 23/23 |
|
||||
| Parität | Golden 0 Abweichungen, Fingerabdruck `DCE95C96556F3A1A` gleich; Markierung und Betäubung wirken nur durch Brunhild |
|
||||
| Inhalt | Heldenjägerin, Speerwurf mit Markierung, Walkürensturz mit Betäubung und Schild, Talente, Auslöser, Skin Eiswalküre, Bot-Profil `walkuere`; Meshy-Figur mit Speer, 113 Credits |
|
||||
| Balance | Probe-Vergleich 50 % wie die übrigen Helden (erste Fassung 0 %, `logs/h2/balance-h2-probe.txt`) |
|
||||
| Leistung | A/B mit Sylvara: Karte gleich (141,4 / 141,9 fps), Mid nah −4 % (156,1 / 162,5) |
|
||||
| Bild | `screenshots/h2/spiel/`, `figur/` |
|
||||
| Commits | `luneraria/h2-brunhild` (H2A `cbff678`) |
|
||||
|
||||
## S4 · Feinschliff (Betäubung, Nebel im Gelände, Glyphe für Gäste)
|
||||
|
||||
| Punkt | Ergebnis |
|
||||
| --- | --- |
|
||||
| Tests | Kern .NET 627/627 (neu `s4` 8), EditMode 35/35, PlayMode 20/20 (neu `S4Views`), Verify A–I 718/0, Player-Selbsttest 30/30 |
|
||||
| Parität | Golden 0 Abweichungen, Fingerabdruck `DCE95C96556F3A1A` gleich; alles Darstellung |
|
||||
| Inhalt | Betäubungs-Ring (auch für Gäste über Bit 18 der Rahmen-Flags), Nebel-Gitter im Gelände (`LuneFogOverlay`, Shader `Luneraria/FogOverlay`), Glyphe im Kampfrahmen für Gäste |
|
||||
| Leistung | Karte 148,6–151,5 fps, Mid nah 163,4–167,3 fps (Bot-Partie ohne Nebel); die Nebelkosten sind nicht gemessen |
|
||||
| Bild | `screenshots/s4/spiel/` |
|
||||
| Commits | `luneraria/s4-feinschliff` |
|
||||
|
||||
## Ausblick
|
||||
|
||||
Der Pilot entscheidet über eine Serie weiterer Meshy-Figuren (Kosten je Figur, Lizenz, Stilgleichheit). Offen bleiben außerdem Künstler-Sculpts für Anatomie/Gesicht/Haar, LOD und Material-Atlanten sowie die Build-Module für Windows und Linux.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Port-Status · Champions of Luneraria in Unity
|
||||
|
||||
Stand: 11. Oktober 2026 (Hauptstand: `main` = S4, Tag `stand-2026-10-11`; Übersicht [../luneraria/HAUPTSTAND.md](../luneraria/HAUPTSTAND.md)).
|
||||
Stand: 11. Oktober 2026 (S3, Bots, Neutrallager, Fog of War).
|
||||
|
||||
Referenz ist der Godot-Stand `luneraria/g3` (`1b540f2`) in `../saumwacht-godot`; er wird nicht mehr verändert. Engine: Unity 6.3 LTS (6000.3.20f1), Renderer URP. HDRP ist ausgeschlossen, bis ein Vergleich mit einer echten Szene etwas anderes nahelegt.
|
||||
|
||||
|
|
@ -18,8 +18,6 @@ Zielplattformen sind Fedora 44 und Windows 11; macOS ist die Entwicklungsplattfo
|
|||
| S1 · Strategie-Regeln | **fertig** (`luneraria/s1-strategie`): Söldner-Einkommen (Legion TD 2), Kasernen und Rückkauf (Dota 2), Mondsegen (League of Legends) hinter dem Regelschalter „Erweitert“ (Standard im Spiel); Referenzregeln für Tests unverändert | [../luneraria/S1-STRATEGIE.md](../luneraria/S1-STRATEGIE.md) |
|
||||
| S2 · Glyphe, Rezepte, Ancient | **fertig** (`luneraria/s2-strategie`): Glyphe (Dota 2), Item-Rezepte (Dota 2/LoL), Ancient-Stufen (Legion TD 2), Grottenjagd der Bots; hinter dem Regelschalter „Erweitert“ | [../luneraria/S2-STRATEGIE.md](../luneraria/S2-STRATEGIE.md) |
|
||||
| S3 · Bots, Neutrallager, Fog of War | **fertig** (`luneraria/s3-strategie`): frühe Bot-Helden und Rotationsfehler behoben, Neutrallager mit LoL-Buffs, Fog of War mit Spähern (Dota 2) und Aufklärung in der Planung; hinter dem Regelschalter „Erweitert“ | [../luneraria/S3-STRATEGIE.md](../luneraria/S3-STRATEGIE.md) |
|
||||
| H2 · Brunhild | **fertig** (`luneraria/h2-brunhild`): zweite Heldin des Champions-Konzepts mit Markierung und Betäubung, Skin Eiswalküre; Referenzpartien unverändert | [../luneraria/H2-BRUNHILD.md](../luneraria/H2-BRUNHILD.md) |
|
||||
| S4 · Feinschliff | **fertig** (`luneraria/s4-feinschliff`): Betäubung sichtbar, Nebel im Gelände, Glyphe und Betäubung für Gäste | [../luneraria/S4-FEINSCHLIFF.md](../luneraria/S4-FEINSCHLIFF.md) |
|
||||
|
||||
QA je Meilenstein: [PORT-QA.md](PORT-QA.md).
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
hero; seat wins; losses; draws; open; win rate; mean rounds; leaps/combat; ultimates/combat
|
||||
held_ringborke; 40; 40; 0; 0; 50 %; 15.0; 0.00; 0.00
|
||||
held_quellgeflecht; 80; 0; 0; 0; 100 %; 13.5; 0.00; 0.00
|
||||
held_funkenlanze; 40; 40; 0; 0; 50 %; 15.0; 0.00; 0.00
|
||||
held_sylvara; 40; 40; 0; 0; 50 %; 14.5; 0.28; 0.31
|
||||
held_brunhild; 40; 40; 0; 0; 50 %; 15.0; 0.00; 0.33
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"suites": [
|
||||
{"suite": "content", "checks": 77, "failures": 0, "seconds": 0.02, "failed": [], "notes": ["map geometry: largest deviation lanes 0.00E+000 m, buildings 0.00E+000 m"]},
|
||||
{"suite": "core", "checks": 91, "failures": 0, "seconds": 1.92, "failed": [], "notes": ["full match seed 2 -> Rot after 9 rounds"]},
|
||||
{"suite": "m2", "checks": 73, "failures": 0, "seconds": 0.40, "failed": [], "notes": []},
|
||||
{"suite": "golden", "checks": 157, "failures": 0, "seconds": 1.58, "failed": [], "notes": ["golden values compared: 51221", "largest deviation angle: 0.00E+000 over 1140 values (tolerance 1E-004)", "largest deviation effect: 0.00E+000 over 264 values (tolerance 1E-006)", "largest deviation hp: 0.00E+000 over 5679 values (tolerance 1E-002)", "largest deviation other: 0.00E+000 over 34 values (tolerance 1E-006)", "largest deviation position: 0.00E+000 over 3420 values (tolerance 1E-003)", "largest deviation time: 0.00E+000 over 780 values (tolerance 1E-006)", "domain ancients: 246 values, 0 differences, largest numeric deviation 0.00E+000", "domain announcements: 44 values, 0 differences, largest numeric deviation 0.00E+000", "domain boss: 1559 values, 0 differences, largest numeric deviation 0.00E+000", "domain combat: 676 values, 0 differences, largest numeric deviation 0.00E+000", "domain commands: 410 values, 0 differences, largest numeric deviation 0.00E+000", "domain events: 6937 values, 0 differences, largest numeric deviation 0.00E+000", "domain facing: 1140 values, 0 differences, largest numeric deviation 0.00E+000", "domain gold: 3584 values, 0 differences, largest numeric deviation 0.00E+000", "domain heroes: 1512 values, 0 differences, largest numeric deviation 0.00E+000", "domain hp: 3420 values, 0 differences, largest numeric deviation 0.00E+000", "domain other: 119 values, 0 differences, largest numeric deviation 0.00E+000", "domain positions: 3420 values, 0 differences, largest numeric deviation 0.00E+000", "domain purchases: 9311 values, 0 differences, largest numeric deviation 0.00E+000", "domain rounds: 119 values, 0 differences, largest numeric deviation 0.00E+000", "domain targets: 1140 values, 0 differences, largest numeric deviation 0.00E+000", "domain towers: 1994 values, 0 differences, largest numeric deviation 0.00E+000", "domain units: 14164 values, 0 differences, largest numeric deviation 0.00E+000", "domain waves: 731 values, 0 differences, largest numeric deviation 0.00E+000", "domain winner: 695 values, 0 differences, largest numeric deviation 0.00E+000"]},
|
||||
{"suite": "determinism", "checks": 6, "failures": 0, "seconds": 1.55, "failed": [], "notes": []},
|
||||
{"suite": "net", "checks": 43, "failures": 0, "seconds": 0.01, "failed": [], "notes": []},
|
||||
{"suite": "net_rounds", "checks": 12, "failures": 0, "seconds": 0.07, "failed": [], "notes": []},
|
||||
{"suite": "h1", "checks": 42, "failures": 0, "seconds": 1.29, "failed": [], "notes": ["sylvara-bot match seed 12: 15/1"]},
|
||||
{"suite": "s1", "checks": 31, "failures": 0, "seconds": 0.43, "failed": [], "notes": ["extended seed 17: 10/0, income bonus 24,0,24,0,0,15, blessing 0/0"]},
|
||||
{"suite": "s2", "checks": 34, "failures": 0, "seconds": 2.12, "failed": [], "notes": ["12 extended matches: expeditions 12, Mondsegen 4, recipe heroes 0, glyphs 19, Ancient levels 34; seed 1 10/0"]},
|
||||
{"suite": "s3", "checks": 31, "failures": 0, "seconds": 0.61, "failed": [], "notes": []},
|
||||
{"suite": "h2", "checks": 22, "failures": 0, "seconds": 0.00, "failed": [], "notes": []}
|
||||
],
|
||||
"runtime": ".NET 8.0.27",
|
||||
"label": ".NET 8.0.27, Release",
|
||||
"os": "Darwin 27.0.0 Darwin Kernel Version 27.0.0: Tue Aug 11 21:02:59 PDT 2026; root:xnu-13432.1.9~1/RELEASE_ARM64_T8142 Arm64"
|
||||
}
|
||||
|
|
@ -1,371 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<test-run id="2" testcasecount="34" result="Passed" total="34" passed="34" failed="0" inconclusive="0" skipped="0" asserts="0" engine-version="3.5.0.0" clr-version="4.0.30319.42000" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:59:03Z" duration="99.1737822">
|
||||
<test-suite type="TestSuite" id="1000" name="luneraria-unity" fullname="luneraria-unity" runstate="Runnable" testcasecount="34" result="Passed" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:59:03Z" duration="99.173782" total="34" passed="34" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="platform" value="EditMode" />
|
||||
</properties>
|
||||
<test-suite type="Assembly" id="1017" name="Luneraria.Core.Tests.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.Core.Tests.dll" runstate="Runnable" testcasecount="14" result="Passed" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:58:39Z" duration="75.882744" total="14" passed="14" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="32049" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1018" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="14" result="Passed" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:58:39Z" duration="75.882499" total="14" passed="14" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1019" name="Core" fullname="Luneraria.Core" runstate="Runnable" testcasecount="14" result="Passed" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:58:39Z" duration="75.882261" total="14" passed="14" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1020" name="Tests" fullname="Luneraria.Core.Tests" runstate="Runnable" testcasecount="14" result="Passed" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:58:39Z" duration="75.882035" total="14" passed="14" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1001" name="CoreIntegrationTests" fullname="Luneraria.Core.Tests.CoreIntegrationTests" classname="Luneraria.Core.Tests.CoreIntegrationTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:57:24Z" duration="0.068032" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1003" name="CoreFloatArithmeticMatchesGodot" fullname="Luneraria.Core.Tests.CoreIntegrationTests.CoreFloatArithmeticMatchesGodot" methodname="CoreFloatArithmeticMatchesGodot" classname="Luneraria.Core.Tests.CoreIntegrationTests" runstate="Runnable" seed="571652855" result="Passed" start-time="2026-10-11 14:57:23Z" end-time="2026-10-11 14:57:24Z" duration="0.063577" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[float probe: length 4000/4000, length_squared 4000/4000, distance_to 4000/4000, distance_squared_to 4000/4000, dot 4000/4000, normalized 4000/4000, lerp 4000/4000, limit_length 4000/4000, multiply 4000/4000, divide 4000/4000, sub_normalized 4000/4000, atan2 4000/4000
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1002" name="CoreHasNoEngineReferences" fullname="Luneraria.Core.Tests.CoreIntegrationTests.CoreHasNoEngineReferences" methodname="CoreHasNoEngineReferences" classname="Luneraria.Core.Tests.CoreIntegrationTests" runstate="Runnable" seed="991403339" result="Passed" start-time="2026-10-11 14:57:24Z" end-time="2026-10-11 14:57:24Z" duration="0.000282" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1004" name="CoreSuiteTests" fullname="Luneraria.Core.Tests.CoreSuiteTests" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 14:57:24Z" end-time="2026-10-11 14:58:39Z" duration="75.813563" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1005" name="Content" fullname="Luneraria.Core.Tests.CoreSuiteTests.Content" methodname="Content" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="625688550" result="Passed" start-time="2026-10-11 14:57:24Z" end-time="2026-10-11 14:57:24Z" duration="0.013331" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[content: map geometry: largest deviation lanes 0.00E+000 m, buildings 0.00E+000 m
|
||||
LUNE_U1_PASS content: 77 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1006" name="CoreRules" fullname="Luneraria.Core.Tests.CoreSuiteTests.CoreRules" methodname="CoreRules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1123911954" result="Passed" start-time="2026-10-11 14:57:24Z" end-time="2026-10-11 14:57:29Z" duration="5.330970" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[core: full match seed 2 -> Rot after 9 rounds
|
||||
LUNE_U1_PASS core: 91 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1009" name="Determinism" fullname="Luneraria.Core.Tests.CoreSuiteTests.Determinism" methodname="Determinism" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="830612951" result="Passed" start-time="2026-10-11 14:57:29Z" end-time="2026-10-11 14:57:42Z" duration="13.546562" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS determinism: 6 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1008" name="GoldenReplays" fullname="Luneraria.Core.Tests.CoreSuiteTests.GoldenReplays" methodname="GoldenReplays" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="977967922" result="Passed" start-time="2026-10-11 14:57:42Z" end-time="2026-10-11 14:57:56Z" duration="13.521733" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[golden: golden values compared: 51221
|
||||
golden: largest deviation angle: 0.00E+000 over 1140 values (tolerance 1E-004)
|
||||
golden: largest deviation effect: 0.00E+000 over 264 values (tolerance 1E-006)
|
||||
golden: largest deviation hp: 0.00E+000 over 5679 values (tolerance 1E-002)
|
||||
golden: largest deviation other: 0.00E+000 over 34 values (tolerance 1E-006)
|
||||
golden: largest deviation position: 0.00E+000 over 3420 values (tolerance 1E-003)
|
||||
golden: largest deviation time: 0.00E+000 over 780 values (tolerance 1E-006)
|
||||
golden: domain ancients: 246 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain announcements: 44 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain boss: 1559 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain combat: 676 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain commands: 410 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain events: 6937 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain facing: 1140 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain gold: 3584 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain heroes: 1512 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain hp: 3420 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain other: 119 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain positions: 3420 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain purchases: 9311 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain rounds: 119 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain targets: 1140 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain towers: 1994 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain units: 14164 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain waves: 731 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain winner: 695 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
LUNE_U1_PASS golden: 157 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1012" name="H1Heroes" fullname="Luneraria.Core.Tests.CoreSuiteTests.H1Heroes" methodname="H1Heroes" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1865512660" result="Passed" start-time="2026-10-11 14:57:56Z" end-time="2026-10-11 14:58:08Z" duration="11.545062" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[h1: sylvara-bot match seed 12: 15/1
|
||||
LUNE_U1_PASS h1: 42 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1016" name="H2Heroes" fullname="Luneraria.Core.Tests.CoreSuiteTests.H2Heroes" methodname="H2Heroes" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1523687017" result="Passed" start-time="2026-10-11 14:58:08Z" end-time="2026-10-11 14:58:08Z" duration="0.014013" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS h2: 22 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1007" name="M2Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.M2Rules" methodname="M2Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1972937494" result="Passed" start-time="2026-10-11 14:58:08Z" end-time="2026-10-11 14:58:11Z" duration="3.368497" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS m2: 73 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1010" name="NetProtocol" fullname="Luneraria.Core.Tests.CoreSuiteTests.NetProtocol" methodname="NetProtocol" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="873191396" result="Passed" start-time="2026-10-11 14:58:11Z" end-time="2026-10-11 14:58:11Z" duration="0.065667" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS net: 43 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1011" name="NetRounds" fullname="Luneraria.Core.Tests.CoreSuiteTests.NetRounds" methodname="NetRounds" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1373345239" result="Passed" start-time="2026-10-11 14:58:11Z" end-time="2026-10-11 14:58:12Z" duration="0.568910" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS net_rounds: 12 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1013" name="S1Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.S1Rules" methodname="S1Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1229423845" result="Passed" start-time="2026-10-11 14:58:12Z" end-time="2026-10-11 14:58:15Z" duration="3.826071" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[s1: extended seed 17: 10/0, income bonus 24,0,24,0,0,15, blessing 0/0
|
||||
LUNE_U1_PASS s1: 31 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1014" name="S2Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.S2Rules" methodname="S2Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1833994956" result="Passed" start-time="2026-10-11 14:58:15Z" end-time="2026-10-11 14:58:34Z" duration="18.719652" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[s2: 12 extended matches: expeditions 12, Mondsegen 4, recipe heroes 0, glyphs 19, Ancient levels 34; seed 1 10/0
|
||||
LUNE_U1_PASS s2: 34 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1015" name="S3Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.S3Rules" methodname="S3Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="103978093" result="Passed" start-time="2026-10-11 14:58:34Z" end-time="2026-10-11 14:58:39Z" duration="5.290612" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS s3: 31 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1026" name="Luneraria.Net.Tests.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.Net.Tests.dll" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.032320" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="32049" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1027" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.007844" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1028" name="Net" fullname="Luneraria.Net" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.007564" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1029" name="Tests" fullname="Luneraria.Net.Tests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.007374" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1021" name="LuneWireTests" fullname="Luneraria.Net.Tests.LuneWireTests" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.007202" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1022" name="CommandRoundTrips" fullname="Luneraria.Net.Tests.LuneWireTests.CommandRoundTrips" methodname="CommandRoundTrips" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="1324813035" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.001662" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1025" name="LobbyAndOptionsRoundTrip" fullname="Luneraria.Net.Tests.LuneWireTests.LobbyAndOptionsRoundTrip" methodname="LobbyAndOptionsRoundTrip" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="1337807739" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.000686" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1023" name="StateRoundTrips" fullname="Luneraria.Net.Tests.LuneWireTests.StateRoundTrips" methodname="StateRoundTrips" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="1980035298" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.002674" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1024" name="UnitsAndFrameRoundTrip" fullname="Luneraria.Net.Tests.LuneWireTests.UnitsAndFrameRoundTrip" methodname="UnitsAndFrameRoundTrip" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="1599248383" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.001510" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1043" name="Luneraria.UI.Tests.EditMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.UI.Tests.EditMode.dll" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:40Z" duration="0.208445" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="32049" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1044" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:40Z" duration="0.208172" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1045" name="UI" fullname="Luneraria.UI" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:40Z" duration="0.207987" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1046" name="Tests" fullname="Luneraria.UI.Tests" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:40Z" duration="0.207759" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1030" name="HudModelTests" fullname="Luneraria.UI.Tests.HudModelTests" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:40Z" duration="0.207484" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1035" name="AnnouncedDangersRaiseTheThreat" fullname="Luneraria.UI.Tests.HudModelTests.AnnouncedDangersRaiseTheThreat" methodname="AnnouncedDangersRaiseTheThreat" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="21792033" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.003704" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1036" name="BattlefieldCountsTheLaneUnits" fullname="Luneraria.UI.Tests.HudModelTests.BattlefieldCountsTheLaneUnits" methodname="BattlefieldCountsTheLaneUnits" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1116785096" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.029662" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1033" name="BossLaneChoiceIsPrivateToTheChooser" fullname="Luneraria.UI.Tests.HudModelTests.BossLaneChoiceIsPrivateToTheChooser" methodname="BossLaneChoiceIsPrivateToTheChooser" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="924751101" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.002437" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1037" name="BossStatesFromPublicState" fullname="Luneraria.UI.Tests.HudModelTests.BossStatesFromPublicState" methodname="BossStatesFromPublicState" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="205962074" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.000659" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1042" name="BotMatchStillStartsByItself" fullname="Luneraria.UI.Tests.HudModelTests.BotMatchStillStartsByItself" methodname="BotMatchStillStartsByItself" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1012985768" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.001684" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1031" name="EverySeatSeesTheSamePublicPicture" fullname="Luneraria.UI.Tests.HudModelTests.EverySeatSeesTheSamePublicPicture" methodname="EverySeatSeesTheSamePublicPicture" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1683370762" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:39Z" duration="0.040698" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1041" name="HumanSeatPlanningWaitsForReady" fullname="Luneraria.UI.Tests.HudModelTests.HumanSeatPlanningWaitsForReady" methodname="HumanSeatPlanningWaitsForReady" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="445174070" result="Passed" start-time="2026-10-11 14:58:39Z" end-time="2026-10-11 14:58:40Z" duration="0.058503" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1034" name="LaneThreatFollowsTowerHealth" fullname="Luneraria.UI.Tests.HudModelTests.LaneThreatFollowsTowerHealth" methodname="LaneThreatFollowsTowerHealth" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="312152121" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:58:40Z" duration="0.000870" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1038" name="NextWaveIsTheRulesWave" fullname="Luneraria.UI.Tests.HudModelTests.NextWaveIsTheRulesWave" methodname="NextWaveIsTheRulesWave" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1416604886" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:58:40Z" duration="0.001335" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1040" name="NumbersAreFormattedAsInGodot" fullname="Luneraria.UI.Tests.HudModelTests.NumbersAreFormattedAsInGodot" methodname="NumbersAreFormattedAsInGodot" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1450916974" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:58:40Z" duration="0.000469" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1032" name="OtherSeatsPlansStayPrivateUntilCombat" fullname="Luneraria.UI.Tests.HudModelTests.OtherSeatsPlansStayPrivateUntilCombat" methodname="OtherSeatsPlansStayPrivateUntilCombat" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="93685332" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:58:40Z" duration="0.065544" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1039" name="ReadyLocksThePlan" fullname="Luneraria.UI.Tests.HudModelTests.ReadyLocksThePlan" methodname="ReadyLocksThePlan" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="383403632" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:58:40Z" duration="0.000795" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1052" name="Luneraria.View.Tests.EditMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.View.Tests.EditMode.dll" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:59:03Z" duration="23.047660" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="32049" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1053" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:59:03Z" duration="23.047364" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1054" name="View" fullname="Luneraria.View" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:59:03Z" duration="23.047250" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1055" name="Tests" fullname="Luneraria.View.Tests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:59:03Z" duration="23.047117" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1047" name="FrameRateIndependenceTests" fullname="Luneraria.View.Tests.FrameRateIndependenceTests" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:59:03Z" duration="23.046959" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1051" name="ClockRunsWholeStepsOnly" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.ClockRunsWholeStepsOnly" methodname="ClockRunsWholeStepsOnly" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="1754690768" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:58:40Z" duration="0.000560" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1048" name="FullBotMatchSeed2IsTheSameAtEveryFrameRate" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.FullBotMatchSeed2IsTheSameAtEveryFrameRate" methodname="FullBotMatchSeed2IsTheSameAtEveryFrameRate" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="1274536394" result="Passed" start-time="2026-10-11 14:58:40Z" end-time="2026-10-11 14:58:49Z" duration="8.963841" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_FPS seed 2 30 fps: 19315 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 60 fps: 38597 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 120 fps: 77169 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 unlimited (0.4-3.9 ms jitter): 569627 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 stutter (stalls up to 0.4 s): 26845 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1049" name="HighWaveMatchFromRound21IsTheSameAtEveryFrameRate" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.HighWaveMatchFromRound21IsTheSameAtEveryFrameRate" methodname="HighWaveMatchFromRound21IsTheSameAtEveryFrameRate" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="83536547" result="Passed" start-time="2026-10-11 14:58:49Z" end-time="2026-10-11 14:58:54Z" duration="5.096916" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_FPS seed 9 30 fps: 6342 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 60 fps: 12678 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 120 fps: 25352 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 unlimited (0.4-3.9 ms jitter): 99090 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 stutter (stalls up to 0.4 s): 8796 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1050" name="MatchSpeedDoesNotChangeTheMatch" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.MatchSpeedDoesNotChangeTheMatch" methodname="MatchSpeedDoesNotChangeTheMatch" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="1828720424" result="Passed" start-time="2026-10-11 14:58:54Z" end-time="2026-10-11 14:59:03Z" duration="8.984654" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_FPS seed 2 30 fps: 2418 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 60 fps: 4831 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 120 fps: 9658 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 unlimited (0.4-3.9 ms jitter): 37713 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 stutter (stalls up to 0.4 s): 3428 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
Saving results to: /Users/martin/Library/Application Support/DefaultCompany/luneraria-unity/TestResults.xml
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-run>
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{"endpoint": "v1/image-to-image", "task": "01a12b6c-9eda-7382-92f6-f2b88931aabf", "status": "SUCCEEDED", "credits": 12, "error": null, "time": "2026-10-11T16:45:45"}
|
||||
{"endpoint": "v1/image-to-image", "task": "01a12b6d-980a-774c-bd36-d96f37cca91d", "status": "SUCCEEDED", "credits": 12, "error": null, "time": "2026-10-11T16:46:49"}
|
||||
{"endpoint": "v1/image-to-3d", "task": "01a12b6e-4bae-74a4-a924-7323c7ff73c4", "status": "SUCCEEDED", "credits": 30, "error": null, "time": "2026-10-11T16:50:03"}
|
||||
{"endpoint": "v1/image-to-3d", "task": "01a12b6e-5198-7244-9d84-acdc34ab0dd1", "status": "SUCCEEDED", "credits": 30, "error": null, "time": "2026-10-11T16:50:03"}
|
||||
{"endpoint": "v1/rigging", "task": "01a12b71-c38f-7621-9467-1c49136e3b47", "status": "SUCCEEDED", "credits": 5, "error": null, "time": "2026-10-11T16:51:03"}
|
||||
{"endpoint": "v1/animations", "task": "01a12b72-4071-75e7-8e0c-30017dec9391", "status": "SUCCEEDED", "credits": 24, "error": null, "time": "2026-10-11T16:51:42"}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_brunhild x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, e01 7, w02 7, brunhild 6, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2764, "fps": 138.1, "frame_ms_avg": 7.24, "frame_ms_median": 3.11, "frame_ms_p95": 22.31, "frame_ms_p99": 28.81, "frame_ms_max": 43.12, "frames_over_16_7_ms": 365, "of_them_with_simulation_step": 30, "gc_collections": 20, "simulation_ms_per_frame": 0.069, "views_ms_per_frame": 0.227, "ui_ms_per_frame": 0.070, "units_alive_max": 85},
|
||||
// timings overview (zoom 64): main thread avg 2.62 / median 2.50 / p95 3.59 ms, render thread avg 1.82 / median 1.80 / p95 2.16 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.61 / median 0.15 / p95 19.58 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1535, "fps": 153.3, "frame_ms_avg": 6.52, "frame_ms_median": 2.84, "frame_ms_p95": 21.72, "frame_ms_p99": 30.41, "frame_ms_max": 37.00, "frames_over_16_7_ms": 161, "of_them_with_simulation_step": 9, "gc_collections": 7, "simulation_ms_per_frame": 0.040, "views_ms_per_frame": 0.191, "ui_ms_per_frame": 0.048, "units_alive_max": 38}
|
||||
// timings mid lane close (zoom 22): main thread avg 2.02 / median 1.97 / p95 2.79 ms, render thread avg 1.37 / median 1.36 / p95 1.59 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.50 / median 0.26 / p95 19.83 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_brunhild x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, e01 7, w02 7, brunhild 6, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2861, "fps": 142.9, "frame_ms_avg": 7.00, "frame_ms_median": 3.01, "frame_ms_p95": 22.01, "frame_ms_p99": 28.11, "frame_ms_max": 41.10, "frames_over_16_7_ms": 339, "of_them_with_simulation_step": 32, "gc_collections": 20, "simulation_ms_per_frame": 0.064, "views_ms_per_frame": 0.215, "ui_ms_per_frame": 0.065, "units_alive_max": 85},
|
||||
// timings overview (zoom 64): main thread avg 2.48 / median 2.38 / p95 3.40 ms, render thread avg 1.72 / median 1.72 / p95 1.99 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.51 / median 0.18 / p95 19.43 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1573, "fps": 157.1, "frame_ms_avg": 6.37, "frame_ms_median": 2.62, "frame_ms_p95": 21.61, "frame_ms_p99": 30.11, "frame_ms_max": 35.81, "frames_over_16_7_ms": 152, "of_them_with_simulation_step": 16, "gc_collections": 7, "simulation_ms_per_frame": 0.037, "views_ms_per_frame": 0.187, "ui_ms_per_frame": 0.046, "units_alive_max": 38}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.95 / median 1.90 / p95 2.60 ms, render thread avg 1.34 / median 1.33 / p95 1.56 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.41 / median 0.21 / p95 19.40 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_brunhild x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, e01 7, w02 7, brunhild 6, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2867, "fps": 143.3, "frame_ms_avg": 6.98, "frame_ms_median": 3.01, "frame_ms_p95": 22.07, "frame_ms_p99": 28.10, "frame_ms_max": 40.11, "frames_over_16_7_ms": 320, "of_them_with_simulation_step": 32, "gc_collections": 20, "simulation_ms_per_frame": 0.064, "views_ms_per_frame": 0.209, "ui_ms_per_frame": 0.063, "units_alive_max": 85},
|
||||
// timings overview (zoom 64): main thread avg 2.44 / median 2.34 / p95 3.30 ms, render thread avg 1.71 / median 1.71 / p95 1.99 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.54 / median 0.19 / p95 19.58 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1579, "fps": 157.8, "frame_ms_avg": 6.34, "frame_ms_median": 2.80, "frame_ms_p95": 21.80, "frame_ms_p99": 29.50, "frame_ms_max": 38.08, "frames_over_16_7_ms": 157, "of_them_with_simulation_step": 13, "gc_collections": 8, "simulation_ms_per_frame": 0.038, "views_ms_per_frame": 0.182, "ui_ms_per_frame": 0.044, "units_alive_max": 38}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.92 / median 1.88 / p95 2.64 ms, render thread avg 1.35 / median 1.34 / p95 1.57 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.41 / median 0.24 / p95 19.85 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_sylvara x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, w02 7, sylvara 5, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2859, "fps": 142.9, "frame_ms_avg": 7.00, "frame_ms_median": 2.99, "frame_ms_p95": 22.54, "frame_ms_p99": 28.12, "frame_ms_max": 51.06, "frames_over_16_7_ms": 334, "of_them_with_simulation_step": 48, "gc_collections": 20, "simulation_ms_per_frame": 0.063, "views_ms_per_frame": 0.218, "ui_ms_per_frame": 0.059, "units_alive_max": 77},
|
||||
// timings overview (zoom 64): main thread avg 2.51 / median 2.43 / p95 3.30 ms, render thread avg 1.74 / median 1.73 / p95 2.03 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.48 / median 0.16 / p95 19.90 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1618, "fps": 161.8, "frame_ms_avg": 6.18, "frame_ms_median": 2.82, "frame_ms_p95": 21.20, "frame_ms_p99": 29.81, "frame_ms_max": 37.19, "frames_over_16_7_ms": 148, "of_them_with_simulation_step": 26, "gc_collections": 8, "simulation_ms_per_frame": 0.037, "views_ms_per_frame": 0.188, "ui_ms_per_frame": 0.044, "units_alive_max": 37}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.98 / median 1.92 / p95 2.71 ms, render thread avg 1.36 / median 1.35 / p95 1.57 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.19 / median 0.42 / p95 19.05 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_sylvara x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, w02 7, sylvara 5, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2834, "fps": 141.7, "frame_ms_avg": 7.06, "frame_ms_median": 3.00, "frame_ms_p95": 21.99, "frame_ms_p99": 27.70, "frame_ms_max": 51.77, "frames_over_16_7_ms": 333, "of_them_with_simulation_step": 22, "gc_collections": 20, "simulation_ms_per_frame": 0.064, "views_ms_per_frame": 0.214, "ui_ms_per_frame": 0.060, "units_alive_max": 77},
|
||||
// timings overview (zoom 64): main thread avg 2.51 / median 2.41 / p95 3.33 ms, render thread avg 1.73 / median 1.73 / p95 2.02 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.55 / median 0.14 / p95 19.33 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1627, "fps": 162.5, "frame_ms_avg": 6.15, "frame_ms_median": 2.90, "frame_ms_p95": 21.11, "frame_ms_p99": 27.98, "frame_ms_max": 34.60, "frames_over_16_7_ms": 150, "of_them_with_simulation_step": 14, "gc_collections": 8, "simulation_ms_per_frame": 0.038, "views_ms_per_frame": 0.184, "ui_ms_per_frame": 0.044, "units_alive_max": 37}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.96 / median 1.91 / p95 2.70 ms, render thread avg 1.34 / median 1.33 / p95 1.56 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.16 / median 0.74 / p95 18.70 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_sylvara x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, w02 7, sylvara 5, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2825, "fps": 141.2, "frame_ms_avg": 7.08, "frame_ms_median": 3.10, "frame_ms_p95": 22.09, "frame_ms_p99": 28.00, "frame_ms_max": 41.50, "frames_over_16_7_ms": 354, "of_them_with_simulation_step": 64, "gc_collections": 20, "simulation_ms_per_frame": 0.065, "views_ms_per_frame": 0.225, "ui_ms_per_frame": 0.060, "units_alive_max": 77},
|
||||
// timings overview (zoom 64): main thread avg 2.60 / median 2.48 / p95 3.70 ms, render thread avg 1.74 / median 1.73 / p95 2.07 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.49 / median 0.14 / p95 19.29 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1635, "fps": 163.2, "frame_ms_avg": 6.13, "frame_ms_median": 2.91, "frame_ms_p95": 20.43, "frame_ms_p99": 27.40, "frame_ms_max": 33.80, "frames_over_16_7_ms": 137, "of_them_with_simulation_step": 25, "gc_collections": 8, "simulation_ms_per_frame": 0.034, "views_ms_per_frame": 0.189, "ui_ms_per_frame": 0.044, "units_alive_max": 37}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.96 / median 1.90 / p95 2.78 ms, render thread avg 1.34 / median 1.33 / p95 1.56 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.14 / median 0.68 / p95 18.22 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"seconds": 11.6,
|
||||
"passed": ["Startbildschirm sichtbar", "Partie wartet: Spielcontroller und Treiber aus", "vor dem Start kein HUD", "„Allein spielen“ bedienbar", "Offline: Startbildschirm verborgen", "Offline: Spielcontroller und Treiber laufen", "Offline: HUD sichtbar", "Offline: neue Partie, Sitz 1 (Mid)", "Offline: Planung", "Offline: lokale Sitzung", "„Startaufstellung“ bedienbar", "Startaufstellung gekauft (3 Einheiten)", "„Bereit“ bedienbar", "Bereit: Kampf beginnt", "Kampf: Figuren im Feld", "„Menü“ bedienbar", "Verlassen-Dialog mit „Zum Menü“", "Zurück: Startbildschirm sichtbar", "Zurück: HUD verborgen", "Zurück: Spielcontroller und Treiber aus", "Zurück: Sitzung beendet", "Zurück: keine Figuren im Feld", "Zurück: Kamera ruht", "Zurück: „Allein spielen“ bedienbar", "Zweite Partie: Startbildschirm verborgen, HUD sichtbar", "Zweite Partie: neue Partie in der Planung", "SSAO folgt der Einstellung", "Option „Umgebungsverdeckung“ sichtbar", "Option schaltet SSAO um", "Option stellt SSAO zurück"],
|
||||
"failed": [],
|
||||
"photos": ["00-startbildschirm.jpg", "01-planung.jpg", "02-kampf.jpg", "03-verlassen.jpg", "04-zurueck-im-startbildschirm.jpg", "05-zweite-partie.jpg", "06-optionen.jpg"],
|
||||
"result": "PASS"
|
||||
}
|
||||
|
|
@ -1,450 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<test-run id="2" testcasecount="31" result="Passed" total="31" passed="19" failed="0" inconclusive="0" skipped="12" asserts="0" engine-version="3.5.0.0" clr-version="4.0.30319.42000" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:13:23Z" duration="312.6098309">
|
||||
<test-suite type="TestSuite" id="1058" name="luneraria-unity" fullname="luneraria-unity" runstate="Runnable" testcasecount="31" result="Passed" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:13:23Z" duration="312.609831" total="31" passed="19" failed="0" inconclusive="0" skipped="12" asserts="0">
|
||||
<properties>
|
||||
<property name="platform" value="PlayMode" />
|
||||
</properties>
|
||||
<test-suite type="Assembly" id="1043" name="Luneraria.UI.Tests.PlayMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.UI.Tests.PlayMode.dll" runstate="Runnable" testcasecount="29" result="Passed" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:40Z" duration="29.448289" total="29" passed="17" failed="0" inconclusive="0" skipped="12" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="33438" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="PlayMode" />
|
||||
<property name="EditorOnly" value="False" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1044" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="29" result="Passed" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:40Z" duration="29.447877" total="29" passed="17" failed="0" inconclusive="0" skipped="12" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1045" name="UI" fullname="Luneraria.UI" runstate="Runnable" testcasecount="29" result="Passed" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:40Z" duration="29.447676" total="29" passed="17" failed="0" inconclusive="0" skipped="12" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1046" name="Tests" fullname="Luneraria.UI.Tests" runstate="Runnable" testcasecount="29" result="Passed" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:40Z" duration="29.447261" total="29" passed="17" failed="0" inconclusive="0" skipped="12" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1001" name="ArmyViewsTests" fullname="Luneraria.UI.Tests.ArmyViewsTests" classname="Luneraria.UI.Tests.ArmyViewsTests" runstate="Explicit" testcasecount="1" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:10Z" duration="0.002637" total="1" passed="0" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
<test-case id="1002" name="Glutpakt" fullname="Luneraria.UI.Tests.ArmyViewsTests.Glutpakt" methodname="Glutpakt" classname="Luneraria.UI.Tests.ArmyViewsTests" runstate="Runnable" seed="484685372" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1003" name="FigureViewsTests" fullname="Luneraria.UI.Tests.FigureViewsTests" classname="Luneraria.UI.Tests.FigureViewsTests" runstate="Explicit" testcasecount="1" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:10Z" duration="0.000068" total="1" passed="0" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
<test-case id="1004" name="Kohlenbeisser" fullname="Luneraria.UI.Tests.FigureViewsTests.Kohlenbeisser" methodname="Kohlenbeisser" classname="Luneraria.UI.Tests.FigureViewsTests" runstate="Runnable" seed="1247754021" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1005" name="H1HeroViewsTests" fullname="Luneraria.UI.Tests.H1HeroViewsTests" classname="Luneraria.UI.Tests.H1HeroViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:12Z" duration="2.024046" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1007" name="SylvaraBilder" fullname="Luneraria.UI.Tests.H1HeroViewsTests.SylvaraBilder" methodname="SylvaraBilder" classname="Luneraria.UI.Tests.H1HeroViewsTests" runstate="Explicit" seed="469215423" result="Skipped" label="Explicit" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:10Z" duration="0.000151" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1006" name="SylvaraHud" fullname="Luneraria.UI.Tests.H1HeroViewsTests.SylvaraHud" methodname="SylvaraHud" classname="Luneraria.UI.Tests.H1HeroViewsTests" runstate="Runnable" seed="1188505406" result="Passed" start-time="2026-10-11 15:08:10Z" end-time="2026-10-11 15:08:12Z" duration="2.021571" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1008" name="H2HeroViewsTests" fullname="Luneraria.UI.Tests.H2HeroViewsTests" classname="Luneraria.UI.Tests.H2HeroViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:12Z" end-time="2026-10-11 15:08:13Z" duration="0.499744" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1010" name="BrunhildBilder" fullname="Luneraria.UI.Tests.H2HeroViewsTests.BrunhildBilder" methodname="BrunhildBilder" classname="Luneraria.UI.Tests.H2HeroViewsTests" runstate="Explicit" seed="1423703170" result="Skipped" label="Explicit" start-time="2026-10-11 15:08:12Z" end-time="2026-10-11 15:08:12Z" duration="0.000001" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1009" name="BrunhildHud" fullname="Luneraria.UI.Tests.H2HeroViewsTests.BrunhildHud" methodname="BrunhildHud" classname="Luneraria.UI.Tests.H2HeroViewsTests" runstate="Runnable" seed="1071759425" result="Passed" start-time="2026-10-11 15:08:12Z" end-time="2026-10-11 15:08:13Z" duration="0.495401" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1011" name="HudCaptureTests" fullname="Luneraria.UI.Tests.HudCaptureTests" classname="Luneraria.UI.Tests.HudCaptureTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:08:13Z" end-time="2026-10-11 15:08:13Z" duration="0.420027" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1012" name="PlanningHudOverTheScene" fullname="Luneraria.UI.Tests.HudCaptureTests.PlanningHudOverTheScene" methodname="PlanningHudOverTheScene" classname="Luneraria.UI.Tests.HudCaptureTests" runstate="Runnable" seed="1885282074" result="Passed" start-time="2026-10-11 15:08:13Z" end-time="2026-10-11 15:08:13Z" duration="0.416059" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_HUD syncs 1 sync ms 0.177 portraits 15 scale 1 size (1706.67, 960.00)
|
||||
LUNE_HUD region top (x:425.78, y:12.44, width:855.11, height:83.56)
|
||||
LUNE_HUD region system (x:1559.11, y:12.44, width:136.00, height:35.56)
|
||||
LUNE_HUD region left (x:12.44, y:12.44, width:312.00, height:466.67)
|
||||
LUNE_HUD region right (x:1372.44, y:56.00, width:322.67, height:248.00)
|
||||
LUNE_HUD region bottom (x:12.44, y:761.78, width:1432.00, height:186.67)
|
||||
LUNE_HUD region ready (x:1455.11, y:616.00, width:240.00, height:84.44)
|
||||
LUNE_HUD region minimap (x:1455.11, y:708.44, width:240.00, height:240.00)
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1013" name="HudPlaytest" fullname="Luneraria.UI.Tests.HudPlaytest" classname="Luneraria.UI.Tests.HudPlaytest" runstate="Explicit" testcasecount="1" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:08:13Z" end-time="2026-10-11 15:08:13Z" duration="0.000105" total="1" passed="0" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Spieltest: wartet auf Befehlsdateien" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Spieltest: wartet auf Befehlsdateien]]></message>
|
||||
</reason>
|
||||
<test-case id="1014" name="Play" fullname="Luneraria.UI.Tests.HudPlaytest.Play" methodname="Play" classname="Luneraria.UI.Tests.HudPlaytest" runstate="Runnable" seed="443027061" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="2147483647" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Spieltest: wartet auf Befehlsdateien]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1015" name="HudVerifyTests" fullname="Luneraria.UI.Tests.HudVerifyTests" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" testcasecount="9" result="Passed" start-time="2026-10-11 15:08:13Z" end-time="2026-10-11 15:08:25Z" duration="12.156553" total="9" passed="9" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1016" name="A_Layout" fullname="Luneraria.UI.Tests.HudVerifyTests.A_Layout" methodname="A_Layout" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1041325043" result="Passed" start-time="2026-10-11 15:08:13Z" end-time="2026-10-11 15:08:18Z" duration="4.607664" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY A: 585 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1017" name="B_Status" fullname="Luneraria.UI.Tests.HudVerifyTests.B_Status" methodname="B_Status" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="2030120030" result="Passed" start-time="2026-10-11 15:08:18Z" end-time="2026-10-11 15:08:18Z" duration="0.406023" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY B: 21 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1018" name="C_HeroItemsUnits" fullname="Luneraria.UI.Tests.HudVerifyTests.C_HeroItemsUnits" methodname="C_HeroItemsUnits" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1005551008" result="Passed" start-time="2026-10-11 15:08:18Z" end-time="2026-10-11 15:08:19Z" duration="0.768884" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY C: 23 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1019" name="D_ChampionsAndBoss" fullname="Luneraria.UI.Tests.HudVerifyTests.D_ChampionsAndBoss" methodname="D_ChampionsAndBoss" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="240803134" result="Passed" start-time="2026-10-11 15:08:19Z" end-time="2026-10-11 15:08:19Z" duration="0.539322" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY D: 16 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1020" name="E_ReadyBotsPrivacy" fullname="Luneraria.UI.Tests.HudVerifyTests.E_ReadyBotsPrivacy" methodname="E_ReadyBotsPrivacy" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="803562058" result="Passed" start-time="2026-10-11 15:08:19Z" end-time="2026-10-11 15:08:21Z" duration="1.414110" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY E: 17 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1021" name="F_Input" fullname="Luneraria.UI.Tests.HudVerifyTests.F_Input" methodname="F_Input" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1108008334" result="Passed" start-time="2026-10-11 15:08:21Z" end-time="2026-10-11 15:08:24Z" duration="3.434122" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY F: 18 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1022" name="G_EventsAndMotion" fullname="Luneraria.UI.Tests.HudVerifyTests.G_EventsAndMotion" methodname="G_EventsAndMotion" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="130660984" result="Passed" start-time="2026-10-11 15:08:24Z" end-time="2026-10-11 15:08:25Z" duration="0.465534" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY G: 14 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1023" name="H_RatesAndPortraits" fullname="Luneraria.UI.Tests.HudVerifyTests.H_RatesAndPortraits" methodname="H_RatesAndPortraits" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1156458073" result="Passed" start-time="2026-10-11 15:08:25Z" end-time="2026-10-11 15:08:25Z" duration="0.210705" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY rates planning 18/2s combat 10/2s sync 0.223 ms portraits 16
|
||||
LUNE_VERIFY H: 5 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1024" name="I_Field" fullname="Luneraria.UI.Tests.HudVerifyTests.I_Field" methodname="I_Field" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="348733467" result="Passed" start-time="2026-10-11 15:08:25Z" end-time="2026-10-11 15:08:25Z" duration="0.306232" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY I: 19 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1025" name="HudViewsTests" fullname="Luneraria.UI.Tests.HudViewsTests" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Explicit" testcasecount="4" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:08:25Z" end-time="2026-10-11 15:08:25Z" duration="0.000241" total="4" passed="0" failed="0" inconclusive="0" skipped="4" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
<test-case id="1028" name="Motifs_1280x720" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_1280x720" methodname="Motifs_1280x720" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="2076851718" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1026" name="Motifs_1920x1080" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_1920x1080" methodname="Motifs_1920x1080" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="1154065971" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1029" name="Motifs_2560x1080" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_2560x1080" methodname="Motifs_2560x1080" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="1482049301" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1027" name="Motifs_2560x1440" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_2560x1440" methodname="Motifs_2560x1440" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="318062725" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1030" name="S1RulesViewsTests" fullname="Luneraria.UI.Tests.S1RulesViewsTests" classname="Luneraria.UI.Tests.S1RulesViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:25Z" end-time="2026-10-11 15:08:27Z" duration="1.626924" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1032" name="S1Bilder" fullname="Luneraria.UI.Tests.S1RulesViewsTests.S1Bilder" methodname="S1Bilder" classname="Luneraria.UI.Tests.S1RulesViewsTests" runstate="Explicit" seed="766748513" result="Skipped" label="Explicit" start-time="2026-10-11 15:08:25Z" end-time="2026-10-11 15:08:25Z" duration="0.000002" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1031" name="S1Hud" fullname="Luneraria.UI.Tests.S1RulesViewsTests.S1Hud" methodname="S1Hud" classname="Luneraria.UI.Tests.S1RulesViewsTests" runstate="Runnable" seed="65905269" result="Passed" start-time="2026-10-11 15:08:25Z" end-time="2026-10-11 15:08:27Z" duration="1.624760" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1033" name="S2RulesViewsTests" fullname="Luneraria.UI.Tests.S2RulesViewsTests" classname="Luneraria.UI.Tests.S2RulesViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:27Z" end-time="2026-10-11 15:08:27Z" duration="0.321169" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1035" name="S2Bilder" fullname="Luneraria.UI.Tests.S2RulesViewsTests.S2Bilder" methodname="S2Bilder" classname="Luneraria.UI.Tests.S2RulesViewsTests" runstate="Explicit" seed="1706347263" result="Skipped" label="Explicit" start-time="2026-10-11 15:08:27Z" end-time="2026-10-11 15:08:27Z" duration="0.000001" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1034" name="S2Hud" fullname="Luneraria.UI.Tests.S2RulesViewsTests.S2Hud" methodname="S2Hud" classname="Luneraria.UI.Tests.S2RulesViewsTests" runstate="Runnable" seed="1522956290" result="Passed" start-time="2026-10-11 15:08:27Z" end-time="2026-10-11 15:08:27Z" duration="0.317689" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1036" name="S3RulesViewsTests" fullname="Luneraria.UI.Tests.S3RulesViewsTests" classname="Luneraria.UI.Tests.S3RulesViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:27Z" end-time="2026-10-11 15:08:29Z" duration="1.541816" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1038" name="S3Bilder" fullname="Luneraria.UI.Tests.S3RulesViewsTests.S3Bilder" methodname="S3Bilder" classname="Luneraria.UI.Tests.S3RulesViewsTests" runstate="Explicit" seed="1027170100" result="Skipped" label="Explicit" start-time="2026-10-11 15:08:27Z" end-time="2026-10-11 15:08:27Z" duration="0.000001" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1037" name="S3Hud" fullname="Luneraria.UI.Tests.S3RulesViewsTests.S3Hud" methodname="S3Hud" classname="Luneraria.UI.Tests.S3RulesViewsTests" runstate="Runnable" seed="1749301029" result="Passed" start-time="2026-10-11 15:08:27Z" end-time="2026-10-11 15:08:29Z" duration="1.539165" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1039" name="StartScreenTests" fullname="Luneraria.UI.Tests.StartScreenTests" classname="Luneraria.UI.Tests.StartScreenTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:08:29Z" end-time="2026-10-11 15:08:39Z" duration="10.733619" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1040" name="StartScreenLeadsIntoTheMatchAndBack" fullname="Luneraria.UI.Tests.StartScreenTests.StartScreenLeadsIntoTheMatchAndBack" methodname="StartScreenLeadsIntoTheMatchAndBack" classname="Luneraria.UI.Tests.StartScreenTests" runstate="Runnable" seed="1557917727" result="Passed" start-time="2026-10-11 15:08:29Z" end-time="2026-10-11 15:08:39Z" duration="10.730807" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="300000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_SMOKE ok Startbildschirm sichtbar
|
||||
LUNE_SMOKE ok Partie wartet: Spielcontroller und Treiber aus
|
||||
LUNE_SMOKE ok vor dem Start kein HUD
|
||||
LUNE_SMOKE ok „Allein spielen“ bedienbar
|
||||
LUNE_SMOKE ok Offline: Startbildschirm verborgen
|
||||
LUNE_SMOKE ok Offline: Spielcontroller und Treiber laufen
|
||||
LUNE_SMOKE ok Offline: HUD sichtbar
|
||||
LUNE_SMOKE ok Offline: neue Partie, Sitz 1 (Mid)
|
||||
LUNE_SMOKE ok Offline: Planung
|
||||
LUNE_SMOKE ok Offline: lokale Sitzung
|
||||
LUNE_SMOKE ok „Startaufstellung“ bedienbar
|
||||
LUNE_SMOKE ok Startaufstellung gekauft (3 Einheiten)
|
||||
LUNE_SMOKE ok „Bereit“ bedienbar
|
||||
LUNE_SMOKE ok Bereit: Kampf beginnt
|
||||
LUNE_SMOKE ok Kampf: Figuren im Feld
|
||||
LUNE_SMOKE ok „Menü“ bedienbar
|
||||
LUNE_SMOKE ok Verlassen-Dialog mit „Zum Menü“
|
||||
LUNE_SMOKE ok Zurück: Startbildschirm sichtbar
|
||||
LUNE_SMOKE ok Zurück: HUD verborgen
|
||||
LUNE_SMOKE ok Zurück: Spielcontroller und Treiber aus
|
||||
LUNE_SMOKE ok Zurück: Sitzung beendet
|
||||
LUNE_SMOKE ok Zurück: keine Figuren im Feld
|
||||
LUNE_SMOKE ok Zurück: Kamera ruht
|
||||
LUNE_SMOKE ok Zurück: „Allein spielen“ bedienbar
|
||||
LUNE_SMOKE ok Zweite Partie: Startbildschirm verborgen, HUD sichtbar
|
||||
LUNE_SMOKE ok Zweite Partie: neue Partie in der Planung
|
||||
LUNE_SMOKE_PASS 26 ok, 0 Fehler
|
||||
LUNE_START_SCREEN 26 checks passed
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1041" name="UiToolkitProbeTests" fullname="Luneraria.UI.Tests.UiToolkitProbeTests" classname="Luneraria.UI.Tests.UiToolkitProbeTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:08:39Z" end-time="2026-10-11 15:08:40Z" duration="0.119090" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1042" name="PanelRendersIntoTexture" fullname="Luneraria.UI.Tests.UiToolkitProbeTests.PanelRendersIntoTexture" methodname="PanelRendersIntoTexture" classname="Luneraria.UI.Tests.UiToolkitProbeTests" runstate="Runnable" seed="1992924022" result="Passed" start-time="2026-10-11 15:08:39Z" end-time="2026-10-11 15:08:40Z" duration="0.118672" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_SPIKE corner RGBA(0.565, 0.635, 0.506, 1.000) panel RGBA(0.196, 0.227, 0.204, 1.000) layout (x:12.44, y:12.44, width:760.00, height:530.67)
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1051" name="Luneraria.View.Tests.PlayMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.View.Tests.PlayMode.dll" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:40Z" end-time="2026-10-11 15:13:23Z" duration="283.158390" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="33438" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="PlayMode" />
|
||||
<property name="EditorOnly" value="False" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1052" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:40Z" end-time="2026-10-11 15:13:23Z" duration="283.156447" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1053" name="View" fullname="Luneraria.View" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:40Z" end-time="2026-10-11 15:13:23Z" duration="283.154829" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1054" name="Tests" fullname="Luneraria.View.Tests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:08:40Z" end-time="2026-10-11 15:13:23Z" duration="283.154156" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1047" name="SceneFrameRateTests" fullname="Luneraria.View.Tests.SceneFrameRateTests" classname="Luneraria.View.Tests.SceneFrameRateTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:08:40Z" end-time="2026-10-11 15:10:30Z" duration="110.535256" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1048" name="SceneMatchIsTheSameAtRealFrameRates" fullname="Luneraria.View.Tests.SceneFrameRateTests.SceneMatchIsTheSameAtRealFrameRates" methodname="SceneMatchIsTheSameAtRealFrameRates" classname="Luneraria.View.Tests.SceneFrameRateTests" runstate="Runnable" seed="636271957" result="Passed" start-time="2026-10-11 15:08:40Z" end-time="2026-10-11 15:10:30Z" duration="110.533471" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_SCENE_FPS 30 fps: 815 frames in 27.1 s = 30.0 fps, up to 21 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
LUNE_SCENE_FPS 60 fps: 1627 frames in 27.1 s = 60.0 fps, up to 10 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
LUNE_SCENE_FPS 120 fps: 3222 frames in 26.9 s = 119.8 fps, up to 8 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
LUNE_SCENE_FPS unlimited: 82796 frames in 26.9 s = 3082.0 fps, up to 9 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1049" name="VerticalFunctionTests" fullname="Luneraria.View.Tests.VerticalFunctionTests" classname="Luneraria.View.Tests.VerticalFunctionTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:10:30Z" end-time="2026-10-11 15:13:23Z" duration="172.618257" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1050" name="BotMatchesRunVisiblyAndMatchTheCore" fullname="Luneraria.View.Tests.VerticalFunctionTests.BotMatchesRunVisiblyAndMatchTheCore" methodname="BotMatchesRunVisiblyAndMatchTheCore" classname="Luneraria.View.Tests.VerticalFunctionTests" runstate="Runnable" seed="2051854219" result="Passed" start-time="2026-10-11 15:10:30Z" end-time="2026-10-11 15:13:23Z" duration="172.612144" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="3600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U2D shot 01-runde1-aufmarsch round 1 Combat
|
||||
LUNE_U2D shot 02-runde1-mid-kampf round 1 Combat
|
||||
LUNE_U2D shot 03-turm-faellt round 7 Combat
|
||||
LUNE_U2D shot 04-turm-ruine round 7 Combat
|
||||
LUNE_U2D shot 05-grotte-bosskampf round 8 Combat
|
||||
LUNE_U2D shot 06-held-kaempft round 9 Combat
|
||||
LUNE_U2D shot 07-boss-auf-der-lane round 9 Combat
|
||||
LUNE_U2D shot 08-ancient-faellt round 9 Over
|
||||
LUNE_U2D shot 09-ancient-ruine round 9 Over
|
||||
LUNE_U2D shot 10-ende-uebersicht round 9 Over
|
||||
LUNE_U2D shot 11-welle21-uebersicht round 21 Combat
|
||||
LUNE_U2D shot 12-welle21-kampf round 21 Combat
|
||||
LUNE_U2D shot 13-ancient-rot-faellt round 22 Over
|
||||
LUNE_U2D shot 14-welle-ende round 22 Over
|
||||
Saving results to: /Users/martin/Library/Application Support/DefaultCompany/luneraria-unity/TestResults.xml
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-run>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"match": "seed 2, bots, speed 24x",
|
||||
"core_hash": "DCE95C96556F3A1A",
|
||||
"core_steps": 12690,
|
||||
"runs": [
|
||||
{"target": "30 fps", "frames": 815, "seconds": 27.146, "measured_fps": 30.023, "max_steps_per_frame": 21, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||
{"target": "60 fps", "frames": 1627, "seconds": 27.101, "measured_fps": 60.034, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||
{"target": "120 fps", "frames": 3222, "seconds": 26.901, "measured_fps": 119.773, "max_steps_per_frame": 8, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||
{"target": "unlimited", "frames": 82796, "seconds": 26.865, "measured_fps": 3081.963, "max_steps_per_frame": 9, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"runs": [
|
||||
{"label": "match-seed2", "seed": 2, "start_round": 1, "extra_gold": 0, "speed": 6, "winner": 1, "end_note": "Ancient von Blau zerstört.", "steps": 12690, "hash": "DCE95C96556F3A1A", "core_hash": "DCE95C96556F3A1A", "same_as_core": true,
|
||||
"units_alive_max": 84, "heroes_alive_max": 4, "boss_log": ["round 8: won team 1 ", "round 9: deployed team 1 bot"],
|
||||
"rounds": [{"round": 1, "combat_seconds": 44.9, "lost": [], "boss": "none", "end": "cleared"}, {"round": 2, "combat_seconds": 57.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 3, "combat_seconds": 54.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 4, "combat_seconds": 62.9, "lost": [], "boss": "none", "end": "cleared"}, {"round": 5, "combat_seconds": 60.7, "lost": [], "boss": "none", "end": "cleared"}, {"round": 6, "combat_seconds": 62.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 7, "combat_seconds": 66.5, "lost": ["blau_bot_outer"], "boss": "none", "end": "cleared"}, {"round": 8, "combat_seconds": 89.65, "lost": ["rot_top_outer", "rot_top_inner"], "boss": "won", "end": "cleared"}, {"round": 9, "combat_seconds": 136.55, "lost": ["blau_bot_inner", "blau_base_2", "blau_base_1", "blau_ancient"], "boss": "deployed", "end": "core"}],
|
||||
"events": ["round 7: blau_bot_outer destroyed", "round 8: rot_top_outer destroyed", "round 8: rot_top_inner destroyed", "round 8: grotto boss won", "round 9: blau_bot_inner destroyed", "round 9: blau_base_2 destroyed", "round 9: blau_base_1 destroyed", "round 9: blau_ancient destroyed", "round 9: grotto boss deployed"],
|
||||
"shots": ["01-runde1-aufmarsch", "02-runde1-mid-kampf", "03-turm-faellt", "04-turm-ruine", "05-grotte-bosskampf", "06-held-kaempft", "07-boss-auf-der-lane", "08-ancient-faellt", "09-ancient-ruine", "10-ende-uebersicht"],
|
||||
"performance": null},
|
||||
{"label": "match-seed9-round21", "seed": 9, "start_round": 21, "extra_gold": 4000, "speed": 6, "winner": 0, "end_note": "Ancient von Rot zerstört.", "steps": 4195, "hash": "7B8E43AEFC0D60C5", "core_hash": "7B8E43AEFC0D60C5", "same_as_core": true,
|
||||
"units_alive_max": 125, "heroes_alive_max": 6, "boss_log": [],
|
||||
"rounds": [{"round": 21, "combat_seconds": 121.8, "lost": ["rot_mid_outer", "rot_top_outer", "rot_mid_inner"], "boss": "none", "end": "cleared"}, {"round": 22, "combat_seconds": 87.95, "lost": ["rot_top_inner", "rot_base_1", "blau_bot_outer", "rot_base_2", "rot_ancient"], "boss": "none", "end": "core"}],
|
||||
"events": ["round 21: rot_mid_outer destroyed", "round 21: rot_top_outer destroyed", "round 21: rot_mid_inner destroyed", "round 22: rot_top_inner destroyed", "round 22: rot_base_1 destroyed", "round 22: blau_bot_outer destroyed", "round 22: rot_base_2 destroyed", "round 22: rot_ancient destroyed"],
|
||||
"shots": ["11-welle21-uebersicht", "12-welle21-kampf", "13-ancient-rot-faellt", "14-welle-ende"],
|
||||
"performance": {"window": "20 s real time at 1x speed, unlimited frame rate, round 21", "frames": 48435, "fps": 2421.738, "frame_ms_avg": 0.413, "frame_ms_p95": 0.424, "simulation_ms_per_frame": 0.004, "views_ms_per_frame": 0.14, "units_alive_max": 116}}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"suites": [
|
||||
{"suite": "content", "checks": 77, "failures": 0, "seconds": 0.02, "failed": [], "notes": ["map geometry: largest deviation lanes 0.00E+000 m, buildings 0.00E+000 m"]},
|
||||
{"suite": "core", "checks": 91, "failures": 0, "seconds": 1.69, "failed": [], "notes": ["full match seed 2 -> Rot after 9 rounds"]},
|
||||
{"suite": "m2", "checks": 73, "failures": 0, "seconds": 0.39, "failed": [], "notes": []},
|
||||
{"suite": "golden", "checks": 157, "failures": 0, "seconds": 1.55, "failed": [], "notes": ["golden values compared: 51221", "largest deviation angle: 0.00E+000 over 1140 values (tolerance 1E-004)", "largest deviation effect: 0.00E+000 over 264 values (tolerance 1E-006)", "largest deviation hp: 0.00E+000 over 5679 values (tolerance 1E-002)", "largest deviation other: 0.00E+000 over 34 values (tolerance 1E-006)", "largest deviation position: 0.00E+000 over 3420 values (tolerance 1E-003)", "largest deviation time: 0.00E+000 over 780 values (tolerance 1E-006)", "domain ancients: 246 values, 0 differences, largest numeric deviation 0.00E+000", "domain announcements: 44 values, 0 differences, largest numeric deviation 0.00E+000", "domain boss: 1559 values, 0 differences, largest numeric deviation 0.00E+000", "domain combat: 676 values, 0 differences, largest numeric deviation 0.00E+000", "domain commands: 410 values, 0 differences, largest numeric deviation 0.00E+000", "domain events: 6937 values, 0 differences, largest numeric deviation 0.00E+000", "domain facing: 1140 values, 0 differences, largest numeric deviation 0.00E+000", "domain gold: 3584 values, 0 differences, largest numeric deviation 0.00E+000", "domain heroes: 1512 values, 0 differences, largest numeric deviation 0.00E+000", "domain hp: 3420 values, 0 differences, largest numeric deviation 0.00E+000", "domain other: 119 values, 0 differences, largest numeric deviation 0.00E+000", "domain positions: 3420 values, 0 differences, largest numeric deviation 0.00E+000", "domain purchases: 9311 values, 0 differences, largest numeric deviation 0.00E+000", "domain rounds: 119 values, 0 differences, largest numeric deviation 0.00E+000", "domain targets: 1140 values, 0 differences, largest numeric deviation 0.00E+000", "domain towers: 1994 values, 0 differences, largest numeric deviation 0.00E+000", "domain units: 14164 values, 0 differences, largest numeric deviation 0.00E+000", "domain waves: 731 values, 0 differences, largest numeric deviation 0.00E+000", "domain winner: 695 values, 0 differences, largest numeric deviation 0.00E+000"]},
|
||||
{"suite": "determinism", "checks": 6, "failures": 0, "seconds": 1.52, "failed": [], "notes": []},
|
||||
{"suite": "net", "checks": 43, "failures": 0, "seconds": 0.01, "failed": [], "notes": []},
|
||||
{"suite": "net_rounds", "checks": 12, "failures": 0, "seconds": 0.07, "failed": [], "notes": []},
|
||||
{"suite": "h1", "checks": 42, "failures": 0, "seconds": 1.27, "failed": [], "notes": ["sylvara-bot match seed 12: 15/1"]},
|
||||
{"suite": "s1", "checks": 31, "failures": 0, "seconds": 0.43, "failed": [], "notes": ["extended seed 17: 10/0, income bonus 24,0,24,0,0,15, blessing 0/0"]},
|
||||
{"suite": "s2", "checks": 34, "failures": 0, "seconds": 2.10, "failed": [], "notes": ["12 extended matches: expeditions 12, Mondsegen 4, recipe heroes 0, glyphs 19, Ancient levels 34; seed 1 10/0"]},
|
||||
{"suite": "s3", "checks": 31, "failures": 0, "seconds": 0.61, "failed": [], "notes": []},
|
||||
{"suite": "h2", "checks": 22, "failures": 0, "seconds": 0.00, "failed": [], "notes": []},
|
||||
{"suite": "s4", "checks": 8, "failures": 0, "seconds": 0.00, "failed": [], "notes": []}
|
||||
],
|
||||
"runtime": ".NET 8.0.27",
|
||||
"label": ".NET 8.0.27, Release",
|
||||
"os": "Darwin 27.0.0 Darwin Kernel Version 27.0.0: Tue Aug 11 21:02:59 PDT 2026; root:xnu-13432.1.9~1/RELEASE_ARM64_T8142 Arm64"
|
||||
}
|
||||
|
|
@ -1,379 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<test-run id="2" testcasecount="35" result="Passed" total="35" passed="35" failed="0" inconclusive="0" skipped="0" asserts="0" engine-version="3.5.0.0" clr-version="4.0.30319.42000" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:46:18Z" duration="103.3902789">
|
||||
<test-suite type="TestSuite" id="1000" name="luneraria-unity" fullname="luneraria-unity" runstate="Runnable" testcasecount="35" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:46:18Z" duration="103.390279" total="35" passed="35" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="platform" value="EditMode" />
|
||||
</properties>
|
||||
<test-suite type="Assembly" id="1018" name="Luneraria.Core.Tests.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.Core.Tests.dll" runstate="Runnable" testcasecount="15" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:45:53Z" duration="78.283975" total="15" passed="15" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="37834" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1019" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="15" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:45:53Z" duration="78.283704" total="15" passed="15" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1020" name="Core" fullname="Luneraria.Core" runstate="Runnable" testcasecount="15" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:45:53Z" duration="78.283495" total="15" passed="15" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1021" name="Tests" fullname="Luneraria.Core.Tests" runstate="Runnable" testcasecount="15" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:45:53Z" duration="78.283229" total="15" passed="15" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1001" name="CoreIntegrationTests" fullname="Luneraria.Core.Tests.CoreIntegrationTests" classname="Luneraria.Core.Tests.CoreIntegrationTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:44:34Z" duration="0.071599" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1003" name="CoreFloatArithmeticMatchesGodot" fullname="Luneraria.Core.Tests.CoreIntegrationTests.CoreFloatArithmeticMatchesGodot" methodname="CoreFloatArithmeticMatchesGodot" classname="Luneraria.Core.Tests.CoreIntegrationTests" runstate="Runnable" seed="107261932" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:44:34Z" duration="0.066655" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[float probe: length 4000/4000, length_squared 4000/4000, distance_to 4000/4000, distance_squared_to 4000/4000, dot 4000/4000, normalized 4000/4000, lerp 4000/4000, limit_length 4000/4000, multiply 4000/4000, divide 4000/4000, sub_normalized 4000/4000, atan2 4000/4000
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1002" name="CoreHasNoEngineReferences" fullname="Luneraria.Core.Tests.CoreIntegrationTests.CoreHasNoEngineReferences" methodname="CoreHasNoEngineReferences" classname="Luneraria.Core.Tests.CoreIntegrationTests" runstate="Runnable" seed="903255537" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:44:34Z" duration="0.000311" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1004" name="CoreSuiteTests" fullname="Luneraria.Core.Tests.CoreSuiteTests" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" testcasecount="13" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:45:53Z" duration="78.210803" total="13" passed="13" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1005" name="Content" fullname="Luneraria.Core.Tests.CoreSuiteTests.Content" methodname="Content" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="930309601" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:44:34Z" duration="0.013726" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[content: map geometry: largest deviation lanes 0.00E+000 m, buildings 0.00E+000 m
|
||||
LUNE_U1_PASS content: 77 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1006" name="CoreRules" fullname="Luneraria.Core.Tests.CoreSuiteTests.CoreRules" methodname="CoreRules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1436593523" result="Passed" start-time="2026-10-11 15:44:34Z" end-time="2026-10-11 15:44:40Z" duration="5.321400" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[core: full match seed 2 -> Rot after 9 rounds
|
||||
LUNE_U1_PASS core: 91 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1009" name="Determinism" fullname="Luneraria.Core.Tests.CoreSuiteTests.Determinism" methodname="Determinism" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="2053697287" result="Passed" start-time="2026-10-11 15:44:40Z" end-time="2026-10-11 15:44:53Z" duration="13.730174" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS determinism: 6 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1008" name="GoldenReplays" fullname="Luneraria.Core.Tests.CoreSuiteTests.GoldenReplays" methodname="GoldenReplays" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1627200637" result="Passed" start-time="2026-10-11 15:44:53Z" end-time="2026-10-11 15:45:07Z" duration="13.868623" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[golden: golden values compared: 51221
|
||||
golden: largest deviation angle: 0.00E+000 over 1140 values (tolerance 1E-004)
|
||||
golden: largest deviation effect: 0.00E+000 over 264 values (tolerance 1E-006)
|
||||
golden: largest deviation hp: 0.00E+000 over 5679 values (tolerance 1E-002)
|
||||
golden: largest deviation other: 0.00E+000 over 34 values (tolerance 1E-006)
|
||||
golden: largest deviation position: 0.00E+000 over 3420 values (tolerance 1E-003)
|
||||
golden: largest deviation time: 0.00E+000 over 780 values (tolerance 1E-006)
|
||||
golden: domain ancients: 246 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain announcements: 44 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain boss: 1559 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain combat: 676 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain commands: 410 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain events: 6937 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain facing: 1140 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain gold: 3584 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain heroes: 1512 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain hp: 3420 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain other: 119 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain positions: 3420 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain purchases: 9311 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain rounds: 119 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain targets: 1140 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain towers: 1994 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain units: 14164 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain waves: 731 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
golden: domain winner: 695 values, 0 differences, largest numeric deviation 0.00E+000
|
||||
LUNE_U1_PASS golden: 157 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1012" name="H1Heroes" fullname="Luneraria.Core.Tests.CoreSuiteTests.H1Heroes" methodname="H1Heroes" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="408816745" result="Passed" start-time="2026-10-11 15:45:07Z" end-time="2026-10-11 15:45:19Z" duration="11.554235" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[h1: sylvara-bot match seed 12: 15/1
|
||||
LUNE_U1_PASS h1: 42 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1016" name="H2Heroes" fullname="Luneraria.Core.Tests.CoreSuiteTests.H2Heroes" methodname="H2Heroes" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="375337043" result="Passed" start-time="2026-10-11 15:45:19Z" end-time="2026-10-11 15:45:19Z" duration="0.014546" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS h2: 22 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1007" name="M2Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.M2Rules" methodname="M2Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="415400525" result="Passed" start-time="2026-10-11 15:45:19Z" end-time="2026-10-11 15:45:22Z" duration="3.399756" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS m2: 73 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1010" name="NetProtocol" fullname="Luneraria.Core.Tests.CoreSuiteTests.NetProtocol" methodname="NetProtocol" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1971154753" result="Passed" start-time="2026-10-11 15:45:22Z" end-time="2026-10-11 15:45:22Z" duration="0.068419" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS net: 43 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1011" name="NetRounds" fullname="Luneraria.Core.Tests.CoreSuiteTests.NetRounds" methodname="NetRounds" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1317151176" result="Passed" start-time="2026-10-11 15:45:22Z" end-time="2026-10-11 15:45:23Z" duration="0.581983" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS net_rounds: 12 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1013" name="S1Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.S1Rules" methodname="S1Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1057465390" result="Passed" start-time="2026-10-11 15:45:23Z" end-time="2026-10-11 15:45:27Z" duration="3.850179" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[s1: extended seed 17: 10/0, income bonus 24,0,24,0,0,15, blessing 0/0
|
||||
LUNE_U1_PASS s1: 31 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1014" name="S2Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.S2Rules" methodname="S2Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="137525762" result="Passed" start-time="2026-10-11 15:45:27Z" end-time="2026-10-11 15:45:47Z" duration="19.941361" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[s2: 12 extended matches: expeditions 12, Mondsegen 4, recipe heroes 0, glyphs 19, Ancient levels 34; seed 1 10/0
|
||||
LUNE_U1_PASS s2: 34 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1015" name="S3Rules" fullname="Luneraria.Core.Tests.CoreSuiteTests.S3Rules" methodname="S3Rules" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1328749086" result="Passed" start-time="2026-10-11 15:45:47Z" end-time="2026-10-11 15:45:53Z" duration="5.853746" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS s3: 31 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1017" name="S4Net" fullname="Luneraria.Core.Tests.CoreSuiteTests.S4Net" methodname="S4Net" classname="Luneraria.Core.Tests.CoreSuiteTests" runstate="Runnable" seed="1242366733" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.004941" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U1_PASS s4: 8 checks
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1027" name="Luneraria.Net.Tests.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.Net.Tests.dll" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.127653" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="37834" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1028" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.029621" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1029" name="Net" fullname="Luneraria.Net" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.028425" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1030" name="Tests" fullname="Luneraria.Net.Tests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.028061" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1022" name="LuneWireTests" fullname="Luneraria.Net.Tests.LuneWireTests" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.027878" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1023" name="CommandRoundTrips" fullname="Luneraria.Net.Tests.LuneWireTests.CommandRoundTrips" methodname="CommandRoundTrips" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="1394399232" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.013068" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1026" name="LobbyAndOptionsRoundTrip" fullname="Luneraria.Net.Tests.LuneWireTests.LobbyAndOptionsRoundTrip" methodname="LobbyAndOptionsRoundTrip" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="914420489" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.001439" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1024" name="StateRoundTrips" fullname="Luneraria.Net.Tests.LuneWireTests.StateRoundTrips" methodname="StateRoundTrips" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="382721647" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.006154" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1025" name="UnitsAndFrameRoundTrip" fullname="Luneraria.Net.Tests.LuneWireTests.UnitsAndFrameRoundTrip" methodname="UnitsAndFrameRoundTrip" classname="Luneraria.Net.Tests.LuneWireTests" runstate="Runnable" seed="993999595" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.005527" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1044" name="Luneraria.UI.Tests.EditMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.UI.Tests.EditMode.dll" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.249808" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="37834" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1045" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.249371" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1046" name="UI" fullname="Luneraria.UI" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.249141" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1047" name="Tests" fullname="Luneraria.UI.Tests" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.248918" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1031" name="HudModelTests" fullname="Luneraria.UI.Tests.HudModelTests" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" testcasecount="12" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.248454" total="12" passed="12" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1036" name="AnnouncedDangersRaiseTheThreat" fullname="Luneraria.UI.Tests.HudModelTests.AnnouncedDangersRaiseTheThreat" methodname="AnnouncedDangersRaiseTheThreat" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="935837599" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.012518" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1037" name="BattlefieldCountsTheLaneUnits" fullname="Luneraria.UI.Tests.HudModelTests.BattlefieldCountsTheLaneUnits" methodname="BattlefieldCountsTheLaneUnits" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="9670403" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.047628" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1034" name="BossLaneChoiceIsPrivateToTheChooser" fullname="Luneraria.UI.Tests.HudModelTests.BossLaneChoiceIsPrivateToTheChooser" methodname="BossLaneChoiceIsPrivateToTheChooser" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1339201813" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.004828" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1038" name="BossStatesFromPublicState" fullname="Luneraria.UI.Tests.HudModelTests.BossStatesFromPublicState" methodname="BossStatesFromPublicState" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="950009974" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.000792" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1043" name="BotMatchStillStartsByItself" fullname="Luneraria.UI.Tests.HudModelTests.BotMatchStillStartsByItself" methodname="BotMatchStillStartsByItself" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1059707782" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.001952" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1032" name="EverySeatSeesTheSamePublicPicture" fullname="Luneraria.UI.Tests.HudModelTests.EverySeatSeesTheSamePublicPicture" methodname="EverySeatSeesTheSamePublicPicture" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1032970802" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.046867" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1042" name="HumanSeatPlanningWaitsForReady" fullname="Luneraria.UI.Tests.HudModelTests.HumanSeatPlanningWaitsForReady" methodname="HumanSeatPlanningWaitsForReady" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1176788613" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.062748" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1035" name="LaneThreatFollowsTowerHealth" fullname="Luneraria.UI.Tests.HudModelTests.LaneThreatFollowsTowerHealth" methodname="LaneThreatFollowsTowerHealth" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="2070107633" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.001146" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1039" name="NextWaveIsTheRulesWave" fullname="Luneraria.UI.Tests.HudModelTests.NextWaveIsTheRulesWave" methodname="NextWaveIsTheRulesWave" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="251806882" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.001697" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1041" name="NumbersAreFormattedAsInGodot" fullname="Luneraria.UI.Tests.HudModelTests.NumbersAreFormattedAsInGodot" methodname="NumbersAreFormattedAsInGodot" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1315738708" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.000560" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1033" name="OtherSeatsPlansStayPrivateUntilCombat" fullname="Luneraria.UI.Tests.HudModelTests.OtherSeatsPlansStayPrivateUntilCombat" methodname="OtherSeatsPlansStayPrivateUntilCombat" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1277302636" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.064264" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1040" name="ReadyLocksThePlan" fullname="Luneraria.UI.Tests.HudModelTests.ReadyLocksThePlan" methodname="ReadyLocksThePlan" classname="Luneraria.UI.Tests.HudModelTests" runstate="Runnable" seed="1134601554" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.000917" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1053" name="Luneraria.View.Tests.EditMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.View.Tests.EditMode.dll" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:46:18Z" duration="24.725799" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="37834" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="EditMode" />
|
||||
<property name="EditorOnly" value="True" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1054" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:46:18Z" duration="24.712838" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1055" name="View" fullname="Luneraria.View" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:46:18Z" duration="24.712619" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1056" name="Tests" fullname="Luneraria.View.Tests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:46:18Z" duration="24.712403" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1048" name="FrameRateIndependenceTests" fullname="Luneraria.View.Tests.FrameRateIndependenceTests" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" testcasecount="4" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:46:18Z" duration="24.712227" total="4" passed="4" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1052" name="ClockRunsWholeStepsOnly" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.ClockRunsWholeStepsOnly" methodname="ClockRunsWholeStepsOnly" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="1388069764" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:45:53Z" duration="0.000929" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
<test-case id="1049" name="FullBotMatchSeed2IsTheSameAtEveryFrameRate" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.FullBotMatchSeed2IsTheSameAtEveryFrameRate" methodname="FullBotMatchSeed2IsTheSameAtEveryFrameRate" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="1268957414" result="Passed" start-time="2026-10-11 15:45:53Z" end-time="2026-10-11 15:46:03Z" duration="9.669904" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_FPS seed 2 30 fps: 19315 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 60 fps: 38597 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 120 fps: 77169 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 unlimited (0.4-3.9 ms jitter): 569627 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 stutter (stalls up to 0.4 s): 26845 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1050" name="HighWaveMatchFromRound21IsTheSameAtEveryFrameRate" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.HighWaveMatchFromRound21IsTheSameAtEveryFrameRate" methodname="HighWaveMatchFromRound21IsTheSameAtEveryFrameRate" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="517063560" result="Passed" start-time="2026-10-11 15:46:03Z" end-time="2026-10-11 15:46:08Z" duration="5.480644" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_FPS seed 9 30 fps: 6342 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 60 fps: 12678 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 120 fps: 25352 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 unlimited (0.4-3.9 ms jitter): 99090 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
LUNE_FPS seed 9 stutter (stalls up to 0.4 s): 8796 frames, 4195 steps, hash 7B8E43AEFC0D60C5 (core 7B8E43AEFC0D60C5)
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1051" name="MatchSpeedDoesNotChangeTheMatch" fullname="Luneraria.View.Tests.FrameRateIndependenceTests.MatchSpeedDoesNotChangeTheMatch" methodname="MatchSpeedDoesNotChangeTheMatch" classname="Luneraria.View.Tests.FrameRateIndependenceTests" runstate="Runnable" seed="926040479" result="Passed" start-time="2026-10-11 15:46:08Z" end-time="2026-10-11 15:46:18Z" duration="9.557888" asserts="0">
|
||||
<properties>
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_FPS seed 2 30 fps: 2418 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 60 fps: 4831 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 120 fps: 9658 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 unlimited (0.4-3.9 ms jitter): 37713 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
LUNE_FPS seed 2 stutter (stalls up to 0.4 s): 3428 frames, 12690 steps, hash DCE95C96556F3A1A (core DCE95C96556F3A1A)
|
||||
Saving results to: /Users/martin/Library/Application Support/DefaultCompany/luneraria-unity/TestResults.xml
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-run>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_brunhild x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, e01 7, w02 7, brunhild 6, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 3030, "fps": 151.5, "frame_ms_avg": 6.60, "frame_ms_median": 2.91, "frame_ms_p95": 22.00, "frame_ms_p99": 28.61, "frame_ms_max": 52.39, "frames_over_16_7_ms": 307, "of_them_with_simulation_step": 24, "gc_collections": 20, "simulation_ms_per_frame": 0.059, "views_ms_per_frame": 0.219, "ui_ms_per_frame": 0.058, "units_alive_max": 85},
|
||||
// timings overview (zoom 64): main thread avg 2.26 / median 2.14 / p95 3.10 ms, render thread avg 1.66 / median 1.65 / p95 1.96 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.33 / median 0.27 / p95 19.63 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1652, "fps": 165.0, "frame_ms_avg": 6.06, "frame_ms_median": 2.91, "frame_ms_p95": 21.41, "frame_ms_p99": 28.50, "frame_ms_max": 37.30, "frames_over_16_7_ms": 154, "of_them_with_simulation_step": 13, "gc_collections": 8, "simulation_ms_per_frame": 0.037, "views_ms_per_frame": 0.190, "ui_ms_per_frame": 0.043, "units_alive_max": 38}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.82 / median 1.71 / p95 2.68 ms, render thread avg 1.32 / median 1.31 / p95 1.56 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.26 / median 0.99 / p95 19.39 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_brunhild x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, e01 7, w02 7, brunhild 6, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2974, "fps": 148.6, "frame_ms_avg": 6.73, "frame_ms_median": 2.90, "frame_ms_p95": 21.52, "frame_ms_p99": 27.56, "frame_ms_max": 37.02, "frames_over_16_7_ms": 328, "of_them_with_simulation_step": 23, "gc_collections": 20, "simulation_ms_per_frame": 0.062, "views_ms_per_frame": 0.222, "ui_ms_per_frame": 0.059, "units_alive_max": 85},
|
||||
// timings overview (zoom 64): main thread avg 2.30 / median 2.21 / p95 3.11 ms, render thread avg 1.71 / median 1.70 / p95 1.99 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.42 / median 0.25 / p95 19.22 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1635, "fps": 163.4, "frame_ms_avg": 6.12, "frame_ms_median": 2.70, "frame_ms_p95": 21.19, "frame_ms_p99": 29.10, "frame_ms_max": 32.90, "frames_over_16_7_ms": 164, "of_them_with_simulation_step": 27, "gc_collections": 8, "simulation_ms_per_frame": 0.037, "views_ms_per_frame": 0.187, "ui_ms_per_frame": 0.042, "units_alive_max": 38}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.78 / median 1.70 / p95 2.49 ms, render thread avg 1.33 / median 1.32 / p95 1.56 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.36 / median 0.46 / p95 19.07 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"vsync": 0,
|
||||
"match": "seed 9 from round 2, army held_brunhild x6, speed 1x, measured after 10 s of combat",
|
||||
// moving units at the start of the first window: w04 11, w06 11, g04 10, g02 9, g06 9, e01 7, w02 7, brunhild 6, g08 4, g10 4, w08 4, w10 3
|
||||
"windows": [
|
||||
{"view": "overview (zoom 64)", "frames": 2990, "fps": 149.4, "frame_ms_avg": 6.69, "frame_ms_median": 2.90, "frame_ms_p95": 22.31, "frame_ms_p99": 28.33, "frame_ms_max": 47.03, "frames_over_16_7_ms": 333, "of_them_with_simulation_step": 33, "gc_collections": 20, "simulation_ms_per_frame": 0.061, "views_ms_per_frame": 0.220, "ui_ms_per_frame": 0.058, "units_alive_max": 85},
|
||||
// timings overview (zoom 64): main thread avg 2.28 / median 2.18 / p95 3.10 ms, render thread avg 1.68 / median 1.67 / p95 1.97 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.40 / median 0.26 / p95 19.90 ms
|
||||
{"view": "mid lane close (zoom 22)", "frames": 1673, "fps": 167.3, "frame_ms_avg": 5.98, "frame_ms_median": 2.69, "frame_ms_p95": 20.81, "frame_ms_p99": 31.71, "frame_ms_max": 38.50, "frames_over_16_7_ms": 152, "of_them_with_simulation_step": 16, "gc_collections": 8, "simulation_ms_per_frame": 0.036, "views_ms_per_frame": 0.186, "ui_ms_per_frame": 0.039, "units_alive_max": 38}
|
||||
// timings mid lane close (zoom 22): main thread avg 1.73 / median 1.67 / p95 2.39 ms, render thread avg 1.32 / median 1.31 / p95 1.54 ms, gpu avg 0.00 / median 0.00 / p95 0.00 ms, present wait avg 4.26 / median 0.91 / p95 19.17 ms
|
||||
]
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"build": "OSXPlayer player, 6000.3.20f1, release",
|
||||
"device": "Mac17,2; Apple M5; Apple M5",
|
||||
"graphics_api": "Metal",
|
||||
"resolution": "1920x1080",
|
||||
"seconds": 11.6,
|
||||
"passed": ["Startbildschirm sichtbar", "Partie wartet: Spielcontroller und Treiber aus", "vor dem Start kein HUD", "„Allein spielen“ bedienbar", "Offline: Startbildschirm verborgen", "Offline: Spielcontroller und Treiber laufen", "Offline: HUD sichtbar", "Offline: neue Partie, Sitz 1 (Mid)", "Offline: Planung", "Offline: lokale Sitzung", "„Startaufstellung“ bedienbar", "Startaufstellung gekauft (3 Einheiten)", "„Bereit“ bedienbar", "Bereit: Kampf beginnt", "Kampf: Figuren im Feld", "„Menü“ bedienbar", "Verlassen-Dialog mit „Zum Menü“", "Zurück: Startbildschirm sichtbar", "Zurück: HUD verborgen", "Zurück: Spielcontroller und Treiber aus", "Zurück: Sitzung beendet", "Zurück: keine Figuren im Feld", "Zurück: Kamera ruht", "Zurück: „Allein spielen“ bedienbar", "Zweite Partie: Startbildschirm verborgen, HUD sichtbar", "Zweite Partie: neue Partie in der Planung", "SSAO folgt der Einstellung", "Option „Umgebungsverdeckung“ sichtbar", "Option schaltet SSAO um", "Option stellt SSAO zurück"],
|
||||
"failed": [],
|
||||
"photos": ["00-startbildschirm.jpg", "01-planung.jpg", "02-kampf.jpg", "03-verlassen.jpg", "04-zurueck-im-startbildschirm.jpg", "05-zweite-partie.jpg", "06-optionen.jpg"],
|
||||
"result": "PASS"
|
||||
}
|
||||
|
|
@ -1,471 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<test-run id="2" testcasecount="33" result="Passed" total="33" passed="20" failed="0" inconclusive="0" skipped="13" asserts="0" engine-version="3.5.0.0" clr-version="4.0.30319.42000" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:51:50Z" duration="313.7388335">
|
||||
<test-suite type="TestSuite" id="1061" name="luneraria-unity" fullname="luneraria-unity" runstate="Runnable" testcasecount="33" result="Passed" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:51:50Z" duration="313.738834" total="33" passed="20" failed="0" inconclusive="0" skipped="13" asserts="0">
|
||||
<properties>
|
||||
<property name="platform" value="PlayMode" />
|
||||
</properties>
|
||||
<test-suite type="Assembly" id="1046" name="Luneraria.UI.Tests.PlayMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.UI.Tests.PlayMode.dll" runstate="Runnable" testcasecount="31" result="Passed" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:47:07Z" duration="30.547717" total="31" passed="18" failed="0" inconclusive="0" skipped="13" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="38117" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="PlayMode" />
|
||||
<property name="EditorOnly" value="False" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1047" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="31" result="Passed" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:47:07Z" duration="30.547432" total="31" passed="18" failed="0" inconclusive="0" skipped="13" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1048" name="UI" fullname="Luneraria.UI" runstate="Runnable" testcasecount="31" result="Passed" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:47:07Z" duration="30.547212" total="31" passed="18" failed="0" inconclusive="0" skipped="13" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1049" name="Tests" fullname="Luneraria.UI.Tests" runstate="Runnable" testcasecount="31" result="Passed" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:47:07Z" duration="30.546809" total="31" passed="18" failed="0" inconclusive="0" skipped="13" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1001" name="ArmyViewsTests" fullname="Luneraria.UI.Tests.ArmyViewsTests" classname="Luneraria.UI.Tests.ArmyViewsTests" runstate="Explicit" testcasecount="1" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:46:36Z" duration="0.002862" total="1" passed="0" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
<test-case id="1002" name="Glutpakt" fullname="Luneraria.UI.Tests.ArmyViewsTests.Glutpakt" methodname="Glutpakt" classname="Luneraria.UI.Tests.ArmyViewsTests" runstate="Runnable" seed="1410751918" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1003" name="FigureViewsTests" fullname="Luneraria.UI.Tests.FigureViewsTests" classname="Luneraria.UI.Tests.FigureViewsTests" runstate="Explicit" testcasecount="1" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:46:36Z" duration="0.000074" total="1" passed="0" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
<test-case id="1004" name="Kohlenbeisser" fullname="Luneraria.UI.Tests.FigureViewsTests.Kohlenbeisser" methodname="Kohlenbeisser" classname="Luneraria.UI.Tests.FigureViewsTests" runstate="Runnable" seed="1327504255" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1005" name="H1HeroViewsTests" fullname="Luneraria.UI.Tests.H1HeroViewsTests" classname="Luneraria.UI.Tests.H1HeroViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:46:39Z" duration="2.687648" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1007" name="SylvaraBilder" fullname="Luneraria.UI.Tests.H1HeroViewsTests.SylvaraBilder" methodname="SylvaraBilder" classname="Luneraria.UI.Tests.H1HeroViewsTests" runstate="Explicit" seed="1513690794" result="Skipped" label="Explicit" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:46:36Z" duration="0.000180" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1006" name="SylvaraHud" fullname="Luneraria.UI.Tests.H1HeroViewsTests.SylvaraHud" methodname="SylvaraHud" classname="Luneraria.UI.Tests.H1HeroViewsTests" runstate="Runnable" seed="1076625979" result="Passed" start-time="2026-10-11 15:46:36Z" end-time="2026-10-11 15:46:39Z" duration="2.685073" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1008" name="H2HeroViewsTests" fullname="Luneraria.UI.Tests.H2HeroViewsTests" classname="Luneraria.UI.Tests.H2HeroViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:46:39Z" end-time="2026-10-11 15:46:39Z" duration="0.465161" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1010" name="BrunhildBilder" fullname="Luneraria.UI.Tests.H2HeroViewsTests.BrunhildBilder" methodname="BrunhildBilder" classname="Luneraria.UI.Tests.H2HeroViewsTests" runstate="Explicit" seed="1843788356" result="Skipped" label="Explicit" start-time="2026-10-11 15:46:39Z" end-time="2026-10-11 15:46:39Z" duration="0.000001" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1009" name="BrunhildHud" fullname="Luneraria.UI.Tests.H2HeroViewsTests.BrunhildHud" methodname="BrunhildHud" classname="Luneraria.UI.Tests.H2HeroViewsTests" runstate="Runnable" seed="500166216" result="Passed" start-time="2026-10-11 15:46:39Z" end-time="2026-10-11 15:46:39Z" duration="0.461230" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1011" name="HudCaptureTests" fullname="Luneraria.UI.Tests.HudCaptureTests" classname="Luneraria.UI.Tests.HudCaptureTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:46:39Z" end-time="2026-10-11 15:46:40Z" duration="0.395429" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1012" name="PlanningHudOverTheScene" fullname="Luneraria.UI.Tests.HudCaptureTests.PlanningHudOverTheScene" methodname="PlanningHudOverTheScene" classname="Luneraria.UI.Tests.HudCaptureTests" runstate="Runnable" seed="156569232" result="Passed" start-time="2026-10-11 15:46:39Z" end-time="2026-10-11 15:46:40Z" duration="0.391472" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_HUD syncs 1 sync ms 0.167 portraits 15 scale 1 size (1706.67, 960.00)
|
||||
LUNE_HUD region top (x:425.78, y:12.44, width:855.11, height:83.56)
|
||||
LUNE_HUD region system (x:1559.11, y:12.44, width:136.00, height:35.56)
|
||||
LUNE_HUD region left (x:12.44, y:12.44, width:312.00, height:466.67)
|
||||
LUNE_HUD region right (x:1372.44, y:56.00, width:322.67, height:248.00)
|
||||
LUNE_HUD region bottom (x:12.44, y:761.78, width:1432.00, height:186.67)
|
||||
LUNE_HUD region ready (x:1455.11, y:616.00, width:240.00, height:84.44)
|
||||
LUNE_HUD region minimap (x:1455.11, y:708.44, width:240.00, height:240.00)
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1013" name="HudPlaytest" fullname="Luneraria.UI.Tests.HudPlaytest" classname="Luneraria.UI.Tests.HudPlaytest" runstate="Explicit" testcasecount="1" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:46:40Z" end-time="2026-10-11 15:46:40Z" duration="0.000086" total="1" passed="0" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Spieltest: wartet auf Befehlsdateien" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Spieltest: wartet auf Befehlsdateien]]></message>
|
||||
</reason>
|
||||
<test-case id="1014" name="Play" fullname="Luneraria.UI.Tests.HudPlaytest.Play" methodname="Play" classname="Luneraria.UI.Tests.HudPlaytest" runstate="Runnable" seed="1750787280" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="2147483647" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Spieltest: wartet auf Befehlsdateien]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1015" name="HudVerifyTests" fullname="Luneraria.UI.Tests.HudVerifyTests" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" testcasecount="9" result="Passed" start-time="2026-10-11 15:46:40Z" end-time="2026-10-11 15:46:52Z" duration="12.116958" total="9" passed="9" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1016" name="A_Layout" fullname="Luneraria.UI.Tests.HudVerifyTests.A_Layout" methodname="A_Layout" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1474983886" result="Passed" start-time="2026-10-11 15:46:40Z" end-time="2026-10-11 15:46:44Z" duration="4.502641" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY A: 585 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1017" name="B_Status" fullname="Luneraria.UI.Tests.HudVerifyTests.B_Status" methodname="B_Status" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="615242257" result="Passed" start-time="2026-10-11 15:46:44Z" end-time="2026-10-11 15:46:44Z" duration="0.417089" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY B: 21 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1018" name="C_HeroItemsUnits" fullname="Luneraria.UI.Tests.HudVerifyTests.C_HeroItemsUnits" methodname="C_HeroItemsUnits" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="2115775" result="Passed" start-time="2026-10-11 15:46:44Z" end-time="2026-10-11 15:46:45Z" duration="0.756387" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY C: 23 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1019" name="D_ChampionsAndBoss" fullname="Luneraria.UI.Tests.HudVerifyTests.D_ChampionsAndBoss" methodname="D_ChampionsAndBoss" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1226437700" result="Passed" start-time="2026-10-11 15:46:45Z" end-time="2026-10-11 15:46:46Z" duration="0.558635" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY D: 16 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1020" name="E_ReadyBotsPrivacy" fullname="Luneraria.UI.Tests.HudVerifyTests.E_ReadyBotsPrivacy" methodname="E_ReadyBotsPrivacy" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1073391563" result="Passed" start-time="2026-10-11 15:46:46Z" end-time="2026-10-11 15:46:47Z" duration="1.411138" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY E: 17 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1021" name="F_Input" fullname="Luneraria.UI.Tests.HudVerifyTests.F_Input" methodname="F_Input" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="19796220" result="Passed" start-time="2026-10-11 15:46:47Z" end-time="2026-10-11 15:46:51Z" duration="3.426542" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY F: 18 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1022" name="G_EventsAndMotion" fullname="Luneraria.UI.Tests.HudVerifyTests.G_EventsAndMotion" methodname="G_EventsAndMotion" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="2106235626" result="Passed" start-time="2026-10-11 15:46:51Z" end-time="2026-10-11 15:46:51Z" duration="0.537718" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY G: 14 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1023" name="H_RatesAndPortraits" fullname="Luneraria.UI.Tests.HudVerifyTests.H_RatesAndPortraits" methodname="H_RatesAndPortraits" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1076750353" result="Passed" start-time="2026-10-11 15:46:51Z" end-time="2026-10-11 15:46:51Z" duration="0.202539" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY rates planning 18/2s combat 10/2s sync 0.221 ms portraits 16
|
||||
LUNE_VERIFY H: 5 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
<test-case id="1024" name="I_Field" fullname="Luneraria.UI.Tests.HudVerifyTests.I_Field" methodname="I_Field" classname="Luneraria.UI.Tests.HudVerifyTests" runstate="Runnable" seed="1119995107" result="Passed" start-time="2026-10-11 15:46:51Z" end-time="2026-10-11 15:46:52Z" duration="0.300928" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="900000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_VERIFY I: 19 checks, 0 failed
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1025" name="HudViewsTests" fullname="Luneraria.UI.Tests.HudViewsTests" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Explicit" testcasecount="4" result="Skipped" label="Explicit" site="SetUp" start-time="2026-10-11 15:46:52Z" end-time="2026-10-11 15:46:52Z" duration="0.000216" total="4" passed="0" failed="0" inconclusive="0" skipped="4" asserts="0">
|
||||
<properties>
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
<test-case id="1028" name="Motifs_1280x720" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_1280x720" methodname="Motifs_1280x720" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="481465809" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1026" name="Motifs_1920x1080" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_1920x1080" methodname="Motifs_1920x1080" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="712636040" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1029" name="Motifs_2560x1080" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_2560x1080" methodname="Motifs_2560x1080" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="1149282381" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1027" name="Motifs_2560x1440" fullname="Luneraria.UI.Tests.HudViewsTests.Motifs_2560x1440" methodname="Motifs_2560x1440" classname="Luneraria.UI.Tests.HudViewsTests" runstate="Runnable" seed="1710397216" result="Skipped" label="Explicit" site="Parent" start-time="0001-01-01 00:00:00Z" end-time="0001-01-01 00:00:00Z" duration="0.000000" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="1800000" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1030" name="S1RulesViewsTests" fullname="Luneraria.UI.Tests.S1RulesViewsTests" classname="Luneraria.UI.Tests.S1RulesViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:46:52Z" end-time="2026-10-11 15:46:53Z" duration="1.665708" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1032" name="S1Bilder" fullname="Luneraria.UI.Tests.S1RulesViewsTests.S1Bilder" methodname="S1Bilder" classname="Luneraria.UI.Tests.S1RulesViewsTests" runstate="Explicit" seed="1307412873" result="Skipped" label="Explicit" start-time="2026-10-11 15:46:52Z" end-time="2026-10-11 15:46:52Z" duration="0.000001" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1031" name="S1Hud" fullname="Luneraria.UI.Tests.S1RulesViewsTests.S1Hud" methodname="S1Hud" classname="Luneraria.UI.Tests.S1RulesViewsTests" runstate="Runnable" seed="1524292985" result="Passed" start-time="2026-10-11 15:46:52Z" end-time="2026-10-11 15:46:53Z" duration="1.663693" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1033" name="S2RulesViewsTests" fullname="Luneraria.UI.Tests.S2RulesViewsTests" classname="Luneraria.UI.Tests.S2RulesViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:46:53Z" end-time="2026-10-11 15:46:54Z" duration="0.321237" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1035" name="S2Bilder" fullname="Luneraria.UI.Tests.S2RulesViewsTests.S2Bilder" methodname="S2Bilder" classname="Luneraria.UI.Tests.S2RulesViewsTests" runstate="Explicit" seed="1661918112" result="Skipped" label="Explicit" start-time="2026-10-11 15:46:53Z" end-time="2026-10-11 15:46:53Z" duration="0.000003" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1034" name="S2Hud" fullname="Luneraria.UI.Tests.S2RulesViewsTests.S2Hud" methodname="S2Hud" classname="Luneraria.UI.Tests.S2RulesViewsTests" runstate="Runnable" seed="803820144" result="Passed" start-time="2026-10-11 15:46:53Z" end-time="2026-10-11 15:46:54Z" duration="0.317082" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1036" name="S3RulesViewsTests" fullname="Luneraria.UI.Tests.S3RulesViewsTests" classname="Luneraria.UI.Tests.S3RulesViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:46:54Z" end-time="2026-10-11 15:46:55Z" duration="1.552592" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1038" name="S3Bilder" fullname="Luneraria.UI.Tests.S3RulesViewsTests.S3Bilder" methodname="S3Bilder" classname="Luneraria.UI.Tests.S3RulesViewsTests" runstate="Explicit" seed="958100196" result="Skipped" label="Explicit" start-time="2026-10-11 15:46:54Z" end-time="2026-10-11 15:46:54Z" duration="0.000001" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1037" name="S3Hud" fullname="Luneraria.UI.Tests.S3RulesViewsTests.S3Hud" methodname="S3Hud" classname="Luneraria.UI.Tests.S3RulesViewsTests" runstate="Runnable" seed="910466762" result="Passed" start-time="2026-10-11 15:46:54Z" end-time="2026-10-11 15:46:55Z" duration="1.548971" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1039" name="S4PolishViewsTests" fullname="Luneraria.UI.Tests.S4PolishViewsTests" classname="Luneraria.UI.Tests.S4PolishViewsTests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:46:55Z" end-time="2026-10-11 15:46:56Z" duration="0.558907" total="2" passed="1" failed="0" inconclusive="0" skipped="1" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1041" name="S4Bilder" fullname="Luneraria.UI.Tests.S4PolishViewsTests.S4Bilder" methodname="S4Bilder" classname="Luneraria.UI.Tests.S4PolishViewsTests" runstate="Explicit" seed="927200824" result="Skipped" label="Explicit" start-time="2026-10-11 15:46:55Z" end-time="2026-10-11 15:46:55Z" duration="0.000002" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="_SKIPREASON" value="Bildwerkzeug: nur gezielt per -testFilter" />
|
||||
</properties>
|
||||
<reason>
|
||||
<message><![CDATA[Bildwerkzeug: nur gezielt per -testFilter]]></message>
|
||||
</reason>
|
||||
</test-case>
|
||||
<test-case id="1040" name="S4Views" fullname="Luneraria.UI.Tests.S4PolishViewsTests.S4Views" methodname="S4Views" classname="Luneraria.UI.Tests.S4PolishViewsTests" runstate="Runnable" seed="349829057" result="Passed" start-time="2026-10-11 15:46:55Z" end-time="2026-10-11 15:46:56Z" duration="0.557132" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1042" name="StartScreenTests" fullname="Luneraria.UI.Tests.StartScreenTests" classname="Luneraria.UI.Tests.StartScreenTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:46:56Z" end-time="2026-10-11 15:47:06Z" duration="10.705268" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1043" name="StartScreenLeadsIntoTheMatchAndBack" fullname="Luneraria.UI.Tests.StartScreenTests.StartScreenLeadsIntoTheMatchAndBack" methodname="StartScreenLeadsIntoTheMatchAndBack" classname="Luneraria.UI.Tests.StartScreenTests" runstate="Runnable" seed="1636570169" result="Passed" start-time="2026-10-11 15:46:56Z" end-time="2026-10-11 15:47:06Z" duration="10.703321" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="300000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_SMOKE ok Startbildschirm sichtbar
|
||||
LUNE_SMOKE ok Partie wartet: Spielcontroller und Treiber aus
|
||||
LUNE_SMOKE ok vor dem Start kein HUD
|
||||
LUNE_SMOKE ok „Allein spielen“ bedienbar
|
||||
LUNE_SMOKE ok Offline: Startbildschirm verborgen
|
||||
LUNE_SMOKE ok Offline: Spielcontroller und Treiber laufen
|
||||
LUNE_SMOKE ok Offline: HUD sichtbar
|
||||
LUNE_SMOKE ok Offline: neue Partie, Sitz 1 (Mid)
|
||||
LUNE_SMOKE ok Offline: Planung
|
||||
LUNE_SMOKE ok Offline: lokale Sitzung
|
||||
LUNE_SMOKE ok „Startaufstellung“ bedienbar
|
||||
LUNE_SMOKE ok Startaufstellung gekauft (3 Einheiten)
|
||||
LUNE_SMOKE ok „Bereit“ bedienbar
|
||||
LUNE_SMOKE ok Bereit: Kampf beginnt
|
||||
LUNE_SMOKE ok Kampf: Figuren im Feld
|
||||
LUNE_SMOKE ok „Menü“ bedienbar
|
||||
LUNE_SMOKE ok Verlassen-Dialog mit „Zum Menü“
|
||||
LUNE_SMOKE ok Zurück: Startbildschirm sichtbar
|
||||
LUNE_SMOKE ok Zurück: HUD verborgen
|
||||
LUNE_SMOKE ok Zurück: Spielcontroller und Treiber aus
|
||||
LUNE_SMOKE ok Zurück: Sitzung beendet
|
||||
LUNE_SMOKE ok Zurück: keine Figuren im Feld
|
||||
LUNE_SMOKE ok Zurück: Kamera ruht
|
||||
LUNE_SMOKE ok Zurück: „Allein spielen“ bedienbar
|
||||
LUNE_SMOKE ok Zweite Partie: Startbildschirm verborgen, HUD sichtbar
|
||||
LUNE_SMOKE ok Zweite Partie: neue Partie in der Planung
|
||||
LUNE_SMOKE_PASS 26 ok, 0 Fehler
|
||||
LUNE_START_SCREEN 26 checks passed
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1044" name="UiToolkitProbeTests" fullname="Luneraria.UI.Tests.UiToolkitProbeTests" classname="Luneraria.UI.Tests.UiToolkitProbeTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:47:06Z" end-time="2026-10-11 15:47:07Z" duration="0.073319" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1045" name="PanelRendersIntoTexture" fullname="Luneraria.UI.Tests.UiToolkitProbeTests.PanelRendersIntoTexture" methodname="PanelRendersIntoTexture" classname="Luneraria.UI.Tests.UiToolkitProbeTests" runstate="Runnable" seed="1446584506" result="Passed" start-time="2026-10-11 15:47:06Z" end-time="2026-10-11 15:47:07Z" duration="0.072836" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_SPIKE corner RGBA(0.565, 0.635, 0.506, 1.000) panel RGBA(0.196, 0.227, 0.204, 1.000) layout (x:12.44, y:12.44, width:760.00, height:530.67)
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
<test-suite type="Assembly" id="1054" name="Luneraria.View.Tests.PlayMode.dll" fullname="/private/tmp/lune-konzept/Library/ScriptAssemblies/Luneraria.View.Tests.PlayMode.dll" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:47:07Z" end-time="2026-10-11 15:51:50Z" duration="283.187951" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties>
|
||||
<property name="_PID" value="38117" />
|
||||
<property name="_APPDOMAIN" value="Unity Child Domain" />
|
||||
<property name="platform" value="PlayMode" />
|
||||
<property name="EditorOnly" value="False" />
|
||||
</properties>
|
||||
<test-suite type="TestSuite" id="1055" name="Luneraria" fullname="Luneraria" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:47:07Z" end-time="2026-10-11 15:51:50Z" duration="283.187234" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1056" name="View" fullname="Luneraria.View" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:47:07Z" end-time="2026-10-11 15:51:50Z" duration="283.187042" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestSuite" id="1057" name="Tests" fullname="Luneraria.View.Tests" runstate="Runnable" testcasecount="2" result="Passed" start-time="2026-10-11 15:47:07Z" end-time="2026-10-11 15:51:50Z" duration="283.186772" total="2" passed="2" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-suite type="TestFixture" id="1050" name="SceneFrameRateTests" fullname="Luneraria.View.Tests.SceneFrameRateTests" classname="Luneraria.View.Tests.SceneFrameRateTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:47:07Z" end-time="2026-10-11 15:48:57Z" duration="110.620354" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1051" name="SceneMatchIsTheSameAtRealFrameRates" fullname="Luneraria.View.Tests.SceneFrameRateTests.SceneMatchIsTheSameAtRealFrameRates" methodname="SceneMatchIsTheSameAtRealFrameRates" classname="Luneraria.View.Tests.SceneFrameRateTests" runstate="Runnable" seed="1733368402" result="Passed" start-time="2026-10-11 15:47:07Z" end-time="2026-10-11 15:48:57Z" duration="110.618331" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_SCENE_FPS 30 fps: 815 frames in 27.1 s = 30.0 fps, up to 19 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
LUNE_SCENE_FPS 60 fps: 1626 frames in 27.1 s = 60.0 fps, up to 11 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
LUNE_SCENE_FPS 120 fps: 3222 frames in 26.9 s = 119.7 fps, up to 10 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
LUNE_SCENE_FPS unlimited: 84176 frames in 26.8 s = 3138.1 fps, up to 8 steps per frame, hash DCE95C96556F3A1A, same=True
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
<test-suite type="TestFixture" id="1052" name="VerticalFunctionTests" fullname="Luneraria.View.Tests.VerticalFunctionTests" classname="Luneraria.View.Tests.VerticalFunctionTests" runstate="Runnable" testcasecount="1" result="Passed" start-time="2026-10-11 15:48:57Z" end-time="2026-10-11 15:51:50Z" duration="172.566075" total="1" passed="1" failed="0" inconclusive="0" skipped="0" asserts="0">
|
||||
<properties />
|
||||
<test-case id="1053" name="BotMatchesRunVisiblyAndMatchTheCore" fullname="Luneraria.View.Tests.VerticalFunctionTests.BotMatchesRunVisiblyAndMatchTheCore" methodname="BotMatchesRunVisiblyAndMatchTheCore" classname="Luneraria.View.Tests.VerticalFunctionTests" runstate="Runnable" seed="748549110" result="Passed" start-time="2026-10-11 15:48:57Z" end-time="2026-10-11 15:51:50Z" duration="172.561288" asserts="0">
|
||||
<properties>
|
||||
<property name="_JOINTYPE" value="UnityCombinatorial" />
|
||||
<property name="Timeout" value="3600000" />
|
||||
<property name="retryIteration" value="0" />
|
||||
<property name="repeatIteration" value="0" />
|
||||
</properties>
|
||||
<output><![CDATA[LUNE_U2D shot 01-runde1-aufmarsch round 1 Combat
|
||||
LUNE_U2D shot 02-runde1-mid-kampf round 1 Combat
|
||||
LUNE_U2D shot 03-turm-faellt round 7 Combat
|
||||
LUNE_U2D shot 04-turm-ruine round 7 Combat
|
||||
LUNE_U2D shot 05-grotte-bosskampf round 8 Combat
|
||||
LUNE_U2D shot 06-held-kaempft round 9 Combat
|
||||
LUNE_U2D shot 07-boss-auf-der-lane round 9 Combat
|
||||
LUNE_U2D shot 08-ancient-faellt round 9 Over
|
||||
LUNE_U2D shot 09-ancient-ruine round 9 Over
|
||||
LUNE_U2D shot 10-ende-uebersicht round 9 Over
|
||||
LUNE_U2D shot 11-welle21-uebersicht round 21 Combat
|
||||
LUNE_U2D shot 12-welle21-kampf round 21 Combat
|
||||
LUNE_U2D shot 13-ancient-rot-faellt round 22 Over
|
||||
LUNE_U2D shot 14-welle-ende round 22 Over
|
||||
Saving results to: /Users/martin/Library/Application Support/DefaultCompany/luneraria-unity/TestResults.xml
|
||||
]]></output>
|
||||
</test-case>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-suite>
|
||||
</test-run>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"match": "seed 2, bots, speed 24x",
|
||||
"core_hash": "DCE95C96556F3A1A",
|
||||
"core_steps": 12690,
|
||||
"runs": [
|
||||
{"target": "30 fps", "frames": 815, "seconds": 27.142, "measured_fps": 30.027, "max_steps_per_frame": 19, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||
{"target": "60 fps", "frames": 1626, "seconds": 27.12, "measured_fps": 59.956, "max_steps_per_frame": 11, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||
{"target": "120 fps", "frames": 3222, "seconds": 26.91, "measured_fps": 119.733, "max_steps_per_frame": 10, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true},
|
||||
{"target": "unlimited", "frames": 84176, "seconds": 26.824, "measured_fps": 3138.057, "max_steps_per_frame": 8, "steps": 12690, "hash": "DCE95C96556F3A1A", "winner": 1, "same_as_core": true}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"runs": [
|
||||
{"label": "match-seed2", "seed": 2, "start_round": 1, "extra_gold": 0, "speed": 6, "winner": 1, "end_note": "Ancient von Blau zerstört.", "steps": 12690, "hash": "DCE95C96556F3A1A", "core_hash": "DCE95C96556F3A1A", "same_as_core": true,
|
||||
"units_alive_max": 84, "heroes_alive_max": 4, "boss_log": ["round 8: won team 1 ", "round 9: deployed team 1 bot"],
|
||||
"rounds": [{"round": 1, "combat_seconds": 44.9, "lost": [], "boss": "none", "end": "cleared"}, {"round": 2, "combat_seconds": 57.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 3, "combat_seconds": 54.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 4, "combat_seconds": 62.9, "lost": [], "boss": "none", "end": "cleared"}, {"round": 5, "combat_seconds": 60.7, "lost": [], "boss": "none", "end": "cleared"}, {"round": 6, "combat_seconds": 62.1, "lost": [], "boss": "none", "end": "cleared"}, {"round": 7, "combat_seconds": 66.5, "lost": ["blau_bot_outer"], "boss": "none", "end": "cleared"}, {"round": 8, "combat_seconds": 89.65, "lost": ["rot_top_outer", "rot_top_inner"], "boss": "won", "end": "cleared"}, {"round": 9, "combat_seconds": 136.55, "lost": ["blau_bot_inner", "blau_base_2", "blau_base_1", "blau_ancient"], "boss": "deployed", "end": "core"}],
|
||||
"events": ["round 7: blau_bot_outer destroyed", "round 8: rot_top_outer destroyed", "round 8: rot_top_inner destroyed", "round 8: grotto boss won", "round 9: blau_bot_inner destroyed", "round 9: blau_base_2 destroyed", "round 9: blau_base_1 destroyed", "round 9: blau_ancient destroyed", "round 9: grotto boss deployed"],
|
||||
"shots": ["01-runde1-aufmarsch", "02-runde1-mid-kampf", "03-turm-faellt", "04-turm-ruine", "05-grotte-bosskampf", "06-held-kaempft", "07-boss-auf-der-lane", "08-ancient-faellt", "09-ancient-ruine", "10-ende-uebersicht"],
|
||||
"performance": null},
|
||||
{"label": "match-seed9-round21", "seed": 9, "start_round": 21, "extra_gold": 4000, "speed": 6, "winner": 0, "end_note": "Ancient von Rot zerstört.", "steps": 4195, "hash": "7B8E43AEFC0D60C5", "core_hash": "7B8E43AEFC0D60C5", "same_as_core": true,
|
||||
"units_alive_max": 125, "heroes_alive_max": 6, "boss_log": [],
|
||||
"rounds": [{"round": 21, "combat_seconds": 121.8, "lost": ["rot_mid_outer", "rot_top_outer", "rot_mid_inner"], "boss": "none", "end": "cleared"}, {"round": 22, "combat_seconds": 87.95, "lost": ["rot_top_inner", "rot_base_1", "blau_bot_outer", "rot_base_2", "rot_ancient"], "boss": "none", "end": "core"}],
|
||||
"events": ["round 21: rot_mid_outer destroyed", "round 21: rot_top_outer destroyed", "round 21: rot_mid_inner destroyed", "round 22: rot_top_inner destroyed", "round 22: rot_base_1 destroyed", "round 22: blau_bot_outer destroyed", "round 22: rot_base_2 destroyed", "round 22: rot_ancient destroyed"],
|
||||
"shots": ["11-welle21-uebersicht", "12-welle21-kampf", "13-ancient-rot-faellt", "14-welle-ende"],
|
||||
"performance": {"window": "20 s real time at 1x speed, unlimited frame rate, round 21", "frames": 48567, "fps": 2428.338, "frame_ms_avg": 0.412, "frame_ms_p95": 0.414, "simulation_ms_per_frame": 0.004, "views_ms_per_frame": 0.147, "units_alive_max": 116}}
|
||||
]
|
||||
}
|
||||
|
|
@ -1296,199 +1296,6 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "brunhild",
|
||||
"kind": "skinned",
|
||||
"ok": true,
|
||||
"checks": [
|
||||
{
|
||||
"check": "blender_checks_passed",
|
||||
"ok": true,
|
||||
"detail": ""
|
||||
},
|
||||
{
|
||||
"check": "imported",
|
||||
"ok": true,
|
||||
"detail": "\"Assets/Luneraria/Art/Characters/brunhild.fbx\""
|
||||
},
|
||||
{
|
||||
"check": "import_rules_applied",
|
||||
"ok": true,
|
||||
"detail": ""
|
||||
},
|
||||
{
|
||||
"check": "root_transform_identity",
|
||||
"ok": true,
|
||||
"detail": "\"brunhild pos (0.0000, 0.0000, 0.0000) rot (0.00, 0.00, 0.00) scale (1.0000, 1.0000, 1.0000)\""
|
||||
},
|
||||
{
|
||||
"check": "node_transforms_axis_clean",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "mesh_names",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "triangles",
|
||||
"ok": true,
|
||||
"detail": "\"28706 unity / 28706 blender \""
|
||||
},
|
||||
{
|
||||
"check": "material_slots",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "normals_unit_length",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "tangents_where_uv",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "uvs_where_blender_has_uv",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "vertex_colors",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "bounds_axes_scale",
|
||||
"ok": true,
|
||||
"detail": "\"largest difference 0.00005 m; unity (-0.448, 0.000, -0.638) (0.509, 1.801, 1.293)\""
|
||||
},
|
||||
{
|
||||
"check": "skinned_mesh",
|
||||
"ok": true,
|
||||
"detail": "4"
|
||||
},
|
||||
{
|
||||
"check": "bone_names BrunhildBody_LOD0",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "root_bone BrunhildBody_LOD0",
|
||||
"ok": true,
|
||||
"detail": "\"Root\""
|
||||
},
|
||||
{
|
||||
"check": "bone_names BrunhildBody_LOD1",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "root_bone BrunhildBody_LOD1",
|
||||
"ok": true,
|
||||
"detail": "\"Root\""
|
||||
},
|
||||
{
|
||||
"check": "bone_names BrunhildSpeer_LOD0",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "root_bone BrunhildSpeer_LOD0",
|
||||
"ok": true,
|
||||
"detail": "\"Root\""
|
||||
},
|
||||
{
|
||||
"check": "bone_names BrunhildSpeer_LOD1",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
},
|
||||
{
|
||||
"check": "root_bone BrunhildSpeer_LOD1",
|
||||
"ok": true,
|
||||
"detail": "\"Root\""
|
||||
},
|
||||
{
|
||||
"check": "generic_avatar",
|
||||
"ok": true,
|
||||
"detail": "\"brunhildAvatar\""
|
||||
},
|
||||
{
|
||||
"check": "clips",
|
||||
"ok": true,
|
||||
"detail": "[]"
|
||||
}
|
||||
],
|
||||
"facts": {
|
||||
"triangles": 28706,
|
||||
"renderers": 4,
|
||||
"meshes_without_uv_and_tangents": 0,
|
||||
"degenerate_triangles_dropped": 0,
|
||||
"bounds_min": [
|
||||
-0.447806716,
|
||||
2.66768126E-07,
|
||||
-0.637885153
|
||||
],
|
||||
"bounds_max": [
|
||||
0.5085536,
|
||||
1.80075514,
|
||||
1.29309094
|
||||
],
|
||||
"clips": [
|
||||
{
|
||||
"name": "ability",
|
||||
"length": 1.0,
|
||||
"loop": false,
|
||||
"events": 1
|
||||
},
|
||||
{
|
||||
"name": "attack_a",
|
||||
"length": 0.9583333,
|
||||
"loop": false,
|
||||
"events": 1
|
||||
},
|
||||
{
|
||||
"name": "attack_b",
|
||||
"length": 1.0,
|
||||
"loop": false,
|
||||
"events": 1
|
||||
},
|
||||
{
|
||||
"name": "death",
|
||||
"length": 2.41666675,
|
||||
"loop": false,
|
||||
"events": 0
|
||||
},
|
||||
{
|
||||
"name": "hit",
|
||||
"length": 0.5,
|
||||
"loop": false,
|
||||
"events": 0
|
||||
},
|
||||
{
|
||||
"name": "idle",
|
||||
"length": 4.0,
|
||||
"loop": true,
|
||||
"events": 0
|
||||
},
|
||||
{
|
||||
"name": "ultimate",
|
||||
"length": 1.29166663,
|
||||
"loop": false,
|
||||
"events": 1
|
||||
},
|
||||
{
|
||||
"name": "walk",
|
||||
"length": 1.29166663,
|
||||
"loop": true,
|
||||
"events": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "funkenlanze",
|
||||
"kind": "skinned",
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 583 KiB |
|
Before Width: | Height: | Size: 599 KiB |