Closed PokkeTigrex closed 1 year ago
@danielasteljoki check
There should now be an artifact in the ruins only when there's a mission for it. This is because, otherwise we can't ensure that the mission artifact is spawned in the artifact holder, which in my opinion is a bigger issue. Previously we spawned artifacts also with random events, and so it could happen that the randomly spawned artifact was placed in the holder and the mission artifact was just laying somewhere on the ground.
I don't see it an issue that the holder doesn't always hold an artifact.
it is an issue. big artifacts are almost non-existent now. in fact, they ARE non-existent. im close to finishing a 2nd campaign on current version. before you could find tons of artifacts on sea bed and in ruins and elsewhere. now you can't find any. they dont spawn in the world at all. they dont spawn in ruins. some medic perks are completely useless, as they require big artifacts to work. in 2 campaigns, MAYBE we found 1 or at most 2 artifacts outside of an artifact mission, but I dont remember, it still might have been a mission. every artifact holder i've come across was empty. never found an artifact on seafloor or in caves. it is an aspect of the game I sorely miss, especially since the artifact holders were added and there are now perk crafts that require alien materials. but it's like they don't exist in the game at all. on another note, we've had a cave artifact spawn inside a wall, completely unreachable.
Those talents clearly are an issue, but I'm not sure it ever was a good thing that the artifacts spawned just randomly in the level. Now they spawn only in the holders and caves. But I think it's something we should re-evaluate. Maybe we could randomly spawn some artifacts inside containers? But even if we'd do that, the medic talents might require revising.
on a closer inspection, medics can spawn an infinite amount of artifacts from thin air. this seems very weird. atmos machine can turn any small or large artifacts into alien guns, cells or any small or large artifact. it's a 20% chance, but still huge, especially if medics bother going to the ruins to find a ton of artifacts from the looting perk. overall, i dislike the new artifact balance. they dont exist in exploration and yet you can create then from nothing with a few medic talents.
Medic talents no longer require or produce alien artifacts, so that makes them very rare.
Additionally, the abyss islands are trivially easy to mine considering abyss creatures are mostly bullet sponges and each island can yield 10-30 of each alien material, so it's clearly not a balance issue to give out alien materials from ruin artifacts. Fractal guardians can still kill experienced divers.
With the artifact transport case, transporting artifacts is trivial. I'd prefer to see more artifacts in the ruins. At least up the chance to 50% or something.
And as mentioned in the related issue, it appears to be a tagging issue, but I could be wrong.
"Artifacts do not appear to be spawning outside of salvage missions.
in alienitems.xml, artifacts have 2 preferred containers, wrecksecarmcab and ruintreasure
However, there is no container called ruintreasure. There is a container called artifactholder, but it doesn't have the ruintreasure tag which I think is what it was supposed to be.
Not sure if this is an issue with incorrect tagging, extremely low probability, or both."
Since this is the artifact buffing ticket I did a few changes a while ago in my Ruins mod; Artifacts are generally dumped in the ballast and forgotten:
Artifact transport cases require batteries to cancel artifact effects
-Sky Artifact now drains water
-Thermal Artifact periodically produces hot steam in water (very buoyant so you can drop it)
-Faraday Artifact range increased, EMP strength decreased
-Psychosis Artifact range increased, periodically causes Watcher's gaze
-Nasonov Artifact disrupts the sonar (+particle effect)
Annotated xml. The only one I'm worried about is Sky since it can potentially soft-lock ruins by pumping water out, so I disabled the spawning there
<Item name="" identifier="skyholderartifact" category="Alien" Tags="alien,alienartifact" sonarsize="30" scale="0.5" impactsoundtag="impact_metal_heavy" allowsellingwhenbroken="true" hideconditionbar="true">
<Upgrade gameversion="0.9.3.1" scale="0.5" />
<Price baseprice="1000" sold="false">
<Price storeidentifier="merchantoutpost" multiplier="0.85" />
<Price storeidentifier="merchantcity" multiplier="0.85" />
<Price storeidentifier="merchantresearch" multiplier="2" />
<Price storeidentifier="merchantmilitary" multiplier="1.25 "/>
<Price storeidentifier="merchantmine" />
</Price>
<!--PreferredContainer primary="artifactholder" minamount="0" maxamount="1" spawnprobability="0.15"/-->
<PreferredContainer primary="wrecksecarmcab" amount="1" spawnprobability="0.01" />
<!--PreferredContainer primary="ruintreasure" amount="1" spawnprobability="0.05" /-->
<Sprite texture="Content/Items/Alien/AlienRuins_Items.png" depth="0.6" sourcerect="630,0,82,108" origin="0.5,0.5" />
<Deconstruct time="30">
<Item identifier="steel" />
<Item identifier="oxygeniteshard" />
<Item identifier="oxygeniteshard" />
<Item identifier="oxygeniteshard" />
</Deconstruct>
<Body radius="45" density="50" friction="0.95" />
<!--I've put spawning the sky artifact inside ruins on hold until I can figure out how to make it trigger inside submarine only, otherwise it constantly drains water inside ruins and that can soft lock people -->
<Pump maxflow="1000" IsOn="false" flowpercentage="-100">
<PumpOutEmitter particle="bubbles" particlespersecond="5" position="28,-80" anglemin="0" anglemax="360" velocitymin="0" velocitymax="0" scalemin="0.5" scalemax="0.6"/>
<StatusEffect type="InWater" targettype="This" IsOn="True" setvalue="true" checkconditionalalways="true">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<Conditional Insidesubmarine="true" />
</StatusEffect>
<StatusEffect type="NotInWater" targettype="This" IsOn="False" setvalue="true" />
</Pump>
<Holdable slots="RightHand+LeftHand" holdpos="30,-15" handle1="0,10" handle2="0,-10" msg="ItemMsgPickUpSelect">
<!-- drains oxygen MUCH faster -->
<StatusEffect type="Always" target="This,Hull" oxygen="-20000.0">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<ParticleEmitter particle="skyholderfx2" anglemax="360" distancemin="100" distancemax="300" velocitymin="-700" velocitymax="-1200" particlespersecond="100" />
<ParticleEmitter particle="skyholderfx" anglemax="360" particlespersecond="2" />
<sound file="Content/Items/Alien/AlienArtifactLoop1.ogg" range="500.0" loop="true" volume="0.5"/>
</StatusEffect>
</Holdable>
</Item>
<Item name="" identifier="thermalartifact" category="Alien" Tags="alien,alienartifact" sonarsize="30" scale="0.5" impactsoundtag="impact_metal_heavy">
<Upgrade gameversion="0.9.3.1" scale="0.5" />
<Price baseprice="2000" sold="false">
<Price storeidentifier="merchantoutpost" multiplier="0.85" />
<Price storeidentifier="merchantcity" multiplier="0.85" />
<Price storeidentifier="merchantresearch" multiplier="2" />
<Price storeidentifier="merchantmilitary" multiplier="1.25 "/>
<Price storeidentifier="merchantmine" />
</Price>
<PreferredContainer primary="artifactholder" minamount="0" maxamount="1" spawnprobability="0.15"/>
<PreferredContainer primary="wrecksecarmcab" amount="1" spawnprobability="0.01" />
<PreferredContainer primary="ruintreasure" amount="1" spawnprobability="0.05" />
<Sprite texture="Content/Items/Alien/AlienRuins_Items.png" depth="0.6" sourcerect="542,112,102,99" origin="0.5,0.5" />
<Deconstruct time="30">
<Item identifier="steel" />
<Item identifier="incendium" />
<Item identifier="incendium" />
<Item identifier="incendium" />
</Deconstruct>
<Body radius="40" density="11" friction="0.95" />
<Holdable slots="RightHand+LeftHand" holdpos="30,-15" handle1="0,10" handle2="0,-10" msg="ItemMsgPickUpSelect">
<StatusEffect type="Always" target="This,Hull" stackable="false" Interval="30" checkconditionalalways="true">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<ParticleEmitter particle="thermalSetFire" anglemax="360" scalemultiplier="3,3" particleamount="40" />
<sound file="Content/Items/Alien/AlienTurret1.ogg" range="500.0" loop="false" />
<Fire size="100.0" />
</StatusEffect>
<StatusEffect type="Always" target="This">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<ParticleEmitter particle="thermalfx" anglemax="360" distancemax="5" particlespersecond="40" />
<sound file="Content/Items/Alien/AlienArtifactLoop1.ogg" range="500.0" loop="true" volume="0.5"/>
</StatusEffect>
<!-- Emits steam periodically when in water; I wanted to make the thing act like a vertical geyser that burns people above the ballast too but I'm not good enough, so burn AoE in water it is -->
<StatusEffect type="InWater" target="This" Delay="15" duration="1" interval="0.5" disabledeltatime="false" stackable="True" checkconditionalalways="true" networksyncing="true">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<Conditional group="neq human" />
<ParticleEmitter particle="bubbles" particlespersecond="5" anglemin="60" anglemax="120" scalemin="1" scalemax="2" velocitymin="5" velocitymax="100" copyentityangle="false"/>
<ParticleEmitter particle="fleshsmoke" particlespersecond="5" anglemin="60" anglemax="120" scalemin="3" scalemax="5" velocitymin="10" velocitymax="20" copyentityangle="false"/>
<ParticleEmitter particle="steamspray" particlespersecond="30" anglemin="60" anglemax="120" scalemin="1" scalemax="2" velocitymin="300" velocitymax="500" copyentityangle="false" highqualitycollisiondetection="true" />
<sound file="Content/Items/Weapons/FlameThrowerLoop.ogg" type="OnUse" range="700.0" loop="true" />
<Explosion range="200" structuredamage="1" itemdamage="0" smoke="False" flames="false" force="0" sparks="false" shockwave="False" underwaterbubble="false" camerashake="2" flash="false" playtinnitus="false" >
<Affliction identifier="burn" amount="1"/>
</Explosion>
<LightSource range="500" color="255,0,0,255" flicker="0.5" pulseamount="0.3" pulsefrequency="0.5">
<LightTexture texture="Content/Lights/pointlight_rays.png" origin="0.5,0.55" />
</LightSource>
</StatusEffect>
</Holdable>
</Item>
<Item name="" identifier="faradayartifact" category="Alien" Tags="alien,alienartifact" sonarsize="30" scale="0.5" impactsoundtag="impact_metal_heavy" allowsellingwhenbroken="true" hideconditionbar="true">
<Upgrade gameversion="0.9.3.1" scale="0.5" />
<Price baseprice="1200" sold="false">
<Price storeidentifier="merchantoutpost" multiplier="0.85" />
<Price storeidentifier="merchantcity" multiplier="0.85" />
<Price storeidentifier="merchantresearch" multiplier="2" />
<Price storeidentifier="merchantmilitary" multiplier="1.25 "/>
<Price storeidentifier="merchantmine" />
</Price>
<PreferredContainer primary="artifactholder" minamount="0" maxamount="1" spawnprobability="0.15"/>
<PreferredContainer primary="wrecksecarmcab" amount="1" spawnprobability="0.01" />
<PreferredContainer primary="ruintreasure" amount="1" spawnprobability="0.05" />
<Sprite texture="Content/Items/Alien/AlienRuins_Items.png" depth="0.6" sourcerect="645,108,93,103" origin="0.5,0.5" />
<Deconstruct time="30">
<Item identifier="steel" />
<Item identifier="fulgurium" />
<Item identifier="fulgurium" />
<Item identifier="fulgurium" />
</Deconstruct>
<Body radius="45" density="50" friction="0.95" />
<Holdable slots="RightHand+LeftHand" holdpos="30,-15" handle1="0,10" handle2="0,-10" msg="ItemMsgPickUpSelect">
<!-- EMP explosion every 15 seconds. Increased range and reduced EMP strength -->
<StatusEffect type="Always" target="This" delay="15" stackable="false" setvalue="true" checkconditionalalways="true">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<Explosion range="800.0" empstrength="0.5" camerashake="2" stun="0" force="2.0" flames="false" smoke="false" shockwave="false" sparks="true" underwaterbubble="false" />
<!-- separate smaller explosion for EMP affliction -->
<Explosion range="200.0" camerashake="0" stun="0" force="0" flames="false" smoke="false" shockwave="false" sparks="false" underwaterbubble="false" >
<Affliction identifier="emp" strength="25" multiplybymaxvitality="true" />
</Explosion>
<sound file="Content/Items/Alien/AlienCoil1.ogg" range="1000" />
<ParticleEmitter particle="faradayfx" anglemax="360" distancemax="80" scalemultiplier="2.6,2.6" particleamount="40" />
</StatusEffect>
<StatusEffect type="Always" target="This">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<sound file="Content/Items/Alien/AlienArtifactLoop1.ogg" range="500.0" loop="true" volume="0.5"/>
<ParticleEmitter particle="faradayfx" anglemax="360" distancemax="10" particlespersecond="10" />
</StatusEffect>
</Holdable>
</Item>
<Item name="" identifier="nasonovartifact" category="Alien" Tags="alien,nasonov,alienartifact" pickdistance="150" sonarsize="30" scale="0.5" impactsoundtag="impact_metal_heavy" allowsellingwhenbroken="true" hideconditionbar="true">
<Upgrade gameversion="0.9.3.1" scale="0.5" />
<Price baseprice="1000" sold="false">
<Price storeidentifier="merchantoutpost" multiplier="0.85" />
<Price storeidentifier="merchantcity" multiplier="0.85" />
<Price storeidentifier="merchantresearch" multiplier="2" />
<Price storeidentifier="merchantmilitary" multiplier="1.25 "/>
<Price storeidentifier="merchantmine" />
</Price>
<PreferredContainer primary="artifactholder" minamount="0" maxamount="1" spawnprobability="0.15"/>
<PreferredContainer primary="wrecksecarmcab" amount="1" spawnprobability="0.01" />
<PreferredContainer primary="ruintreasure" amount="1" spawnprobability="0.05" />
<Sprite texture="Content/Items/Alien/AlienRuins_Items.png" depth="0.6" sourcerect="718,6,78,102" origin="0.5,0.5" />
<Deconstruct time="30">
<Item identifier="steel" />
<Item identifier="physicorium" />
<Item identifier="physicorium" />
<Item identifier="physicorium" />
</Deconstruct>
<Body radius="45" density="50" friction="0.95" />
<!-- Added sonar disruption -->
<AiTarget sightrange="10000" Soundrange="50000" sonardisruption="0.5" />
<Holdable slots="RightHand+LeftHand" holdpos="30,-15" handle1="0,10" handle2="0,-10" msg="ItemMsgPickUpSelect">
<StatusEffect type="Always" targettype="This" IsOn="True" />
<StatusEffect type="Always" target="This" >
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<!-- Added particle -->
<ParticleEmitter particle="nasonovsparkles" anglemax="360" distancemax="10" velocitymin="10" velocitymax="60" emitinterval="0.55" particleamount="5" particlespersecond="5" />
<sound file="Content/Items/Alien/AlienArtifactLoop1.ogg" range="500.0" loop="true" volume="0.5"/>
</StatusEffect>
<StatusEffect type="Always" target="This" delay="1.1" stackable="false" targettype="this" SoundRange="50000" setvalue="true" >
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<ParticleEmitter particle="nasonovfx" anglemax="360" particleamount="3" />
<sound file="Content/Items/Alien/Alien_ArtifactHolderLoop.ogg" range="1000.0" loop="true" volume="3"/>
</StatusEffect>
</Holdable>
</Item>
<Item name="" identifier="psychosisartifact" category="Alien" Tags="alien,alienartifact" sonarsize="30" spritecolor="200,200,200,255" scale="0.5" impactsoundtag="impact_metal_heavy">
<Upgrade gameversion="0.9.3.1" scale="0.5" />
<Price baseprice="1000" sold="false">
<Price storeidentifier="merchantoutpost" multiplier="0.85" />
<Price storeidentifier="merchantcity" multiplier="0.85" />
<Price storeidentifier="merchantresearch" multiplier="2" />
<Price storeidentifier="merchantmilitary" multiplier="1.25 "/>
<Price storeidentifier="merchantmine" />
</Price>
<PreferredContainer primary="artifactholder" minamount="0" maxamount="1" spawnprobability="0.15"/>
<PreferredContainer primary="wrecksecarmcab" amount="1" spawnprobability="0.01" />
<PreferredContainer primary="ruintreasure" amount="1" spawnprobability="0.05" />
<Sprite texture="Content/Items/Alien/AlienRuins_Items.png" depth="0.6" sourcerect="541,0,88,108" origin="0.5,0.5" />
<Deconstruct time="30">
<Item identifier="steel" />
<Item identifier="dementonite" />
<Item identifier="dementonite" />
<Item identifier="dementonite" />
</Deconstruct>
<Body radius="45" density="50" friction="0.95" />
<Holdable slots="RightHand+LeftHand" holdpos="30,-15" handle1="0,10" handle2="0,-10" msg="ItemMsgPickUpSelect">
<StatusEffect type="Always" target="This">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<sound file="Content/Items/Alien/AlienArtifactLoop1.ogg" range="500.0" loop="true" volume="0.5"/>
<ParticleEmitter particle="psychosisfx" scalemultiplier="0.7,0.7" anglemax="360" emitinterval="1.1" particleamount="1" particlespersecond="1" />
</StatusEffect>
<!-- Releases a burst of watchers gaze in a 1500 radius periodically -->
<StatusEffect type="Always" target="This,NearbyCharacters" range="1500" Delay="30" Duration="5" stackable="false" setvalue="true" checkconditionalalways="true">
<Conditional hastag="neq artifactcontainer" targetcontainer="true" />
<Conditional Voltage="0.0" targetcontainer="true" />
<Affliction identifier="watchersgaze" strength="0.20"/>
<Affliction identifier="psychosis" strength="0.02" />
<ParticleEmitter particle="psychosisfx" anglemax="360" particlespersecond="12" />
<sound file="Content/Items/Alien/Alienpump.ogg" range="500.0" loop="true" volume="0.5" />
</StatusEffect>
</Holdable>
<LightComponent range="150.0" lightcolor="255,56,144,111" IsOn="true" castshadows="false" allowingameediting="false" pulseamount="0.9" pulsefrequency="0.25" />
</Item>
Artifact case but you probably don't need it
<Item name="" identifier="artifacttransportcase" category="Equipment" tags="mediumitem,mobilecontainer,artifactcontainer" cargocontaineridentifier="metalcrate" showcontentsintooltip="true" Scale="0.5" fireproof="true" description="" impactsoundtag="impact_soft">
<PreferredContainer primary="engcab"/>
<Deconstruct time="20">
<Item identifier="lead" />
<Item identifier="titanium" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="30">
<Item identifier="lead" amount="3" />
<Item identifier="titanium" amount="2" />
</Fabricate>
<Price baseprice="500" sold="false" minleveldifficulty="35">
<Price storeidentifier="merchantoutpost" multiplier="0.7" />
<Price storeidentifier="merchantcity" sold="true" minavailable="1" />
<Price storeidentifier="merchantresearch" sold="true" minavailable="1" />
<Price storeidentifier="merchantmilitary" multiplier="0.8" />
<Price storeidentifier="merchantmine" multiplier="0.8" />
</Price>
<InventoryIcon texture="Content/Items/Alien/AlienRuins_Items.png" sourcerect="806,2,124,100" origin="0.5,0.5" />
<Sprite texture="Content/Items/Alien/AlienRuins_Items.png" sourcerect="806,2,124,100" depth="0.6" />
<Body width="124" height="95" density="20" />
<Holdable slots="RightHand,LeftHand" holdpos="0,-70" handle1="0,45" holdangle="0" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" allowswappingwhenpicked="false" />
<LightComponent Range="100" LightColor="200,50,200,200" IsOn="true" castshadows="false" pulsefrequency="0.5" pulseamount="0.5" powerconsumption="100">
<IsActive targetcontaineditem="true" hastag="alienartifact" />
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.2">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<StatusEffect type="OnActive" targettype="This" setvalue="true">
<Conditional Voltage="gt 0.5" targetitemcomponent="LightComponent" />
<RequiredItem items="alienartifact" type="Contained" />
<Sound file="Content/Items/Alien/ALIEN_gravitySphereLoop.ogg" range="200" loop="true"/>
</StatusEffect>
</LightComponent>
<ItemContainer capacity="1" maxstacksize="1" slotsperrow="1" hideitems="true" containedstateindicatorslot="0" containedstateindicatorstyle="battery">
<Containable items="mobilebattery">
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
</Containable>
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
<SubContainer capacity="1" maxstacksize="1">
<Containable items="alienartifact" >
<StatusEffect type="OnContaining" targettype="This" IsOn="true" />
</Containable>
</SubContainer>
</ItemContainer>
<AiTarget soundrange="2000" maxsightrange="2000" />
</Item>
</Items>
Totally unrelated but:
<!-- made destructible, fixed inventory UI + small effect -->
<Item name="" identifier="incubationbubble" category="Alien" tags="aliencontainer" linkable="true" pickdistance="150" scale="0.5" damagedbyexplosions="true" damagedbymeleeweapons="true" damagedbyprojectiles="true" damagedbyrepairtools="true" health="30">
<Sprite texture="Content/Items/Alien/AlienRuins_Items.png" depth="0.84" sourcerect="0,1022,464,340" origin="0.5,0.5" />
<BrokenSprite texture="Content/Items/Alien/AlienRuins_Items.png" sourcerect="1040,1022,464,340" depth="0.799" origin="0.5,0.5" scale="true" />
<Body radius="150" bodytype="Static"/>
<ItemContainer capacity="9" canbeselected="True" hideitems="true" msg="ItemMsgInteractSelect" slotsperrow="3" accessonlywhenbroken="true">
<GuiFrame relativesize="0.2,0.3" anchor="Center" style="ItemUI" />
<Containable items="smallitem,mediumitem" />
<StatusEffect Type="OnBroken" target="This" >
<ParticleEmitter particle="whitegoosplash" drawontop="true" particleamount="20" velocitymin="0" velocitymax="300" anglemin="0" anglemax="360" scalemin="0.5" scalemax="1"/>
<ParticleEmitter particle="damagebubbles" drawontop="true" particleamount="10" scalemin="0.5" scalemax="1" anglemin="45" anglemax="135" velocitymin="100" velocitymax="200" />
<Sound file="Content/Map/Thalamus/Sounds/CARRIER_organs2.ogg" range="500" volume="0.2" />
</StatusEffect>
</ItemContainer>
</Item>
Description It seems very strange that the artifact room in all its showy glory only contains an artifact when its a Salvaging an artifact mission. Its always disappointing to see that ruins that I can stop at from just encountering it out in the ocean without an mission, or while doing ruin scan or elimination mission, doesn't contain at least a guaranteed large artifact in the holder. Seems unintentional to me especially since old ruins usually had an artifact in its holder no matter what.
Steps To Reproduce Go to a ruins that's not a Salvaging a artifact mission target and go to the artifact room. No artifact.
Version 0.15.13 Windows