Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Hedron

Pages: [1] 2
1
It was fixed at some point (at least worked for me in OXCE at some point).
1. Make Alien Soldier 'Dependant' on the stuff on your list. This should block off the research of that alien. Might not work with 1.0 or the latest nightlies
In nightlies it all works and works correctly.
Quote
3. Don't give anyone of the above Get One Free
This is unacceptable. Who, then, will talk about Alien Submarines or Alien Missions?

Yet, if the developers do not want to eliminate a "GetOneFree with dependencies"-bug, the best solution I believe the option proposed by ivandogovich – to use for interrogation technicians instead of scientists.

2
EDIT: it's really not possible :( and the source code for this part is a total mess... I think the author should have taken a bit more sleep before writing it... you know something is wrong, when the variable name is called "ohBoy", not even joking. I hope SupSuper or Warboy can refactor this after 2.0 ... OXC definitely deserves it
Are you want to say that to resolve the "dependencies with getOneFree"-issue in bugtrack not even worth it to post?

3
However you could make the Alien Containment unit require some depenencies to get unlocked...
I'll keep that in mind as a Plan-B (In case the developers do not want to resolve "dependencies with getOneFree"-trouble).
I would not want to delay the appearance of the Alien Containment, as I have too many will depend on Medics (in order to avoid unnecessary confusion, I have shown only problematic part of the research tree), and at your option, by the time the end of building Alien Containment, Aquatoids can be stop appearing (but Medics have only Aquatoids).

Piratez handles this by creating a "manufacturing" job called interrogation.  The prisoner is run through a process in the workshop that returns a "broken prisoner".  This item is presented back to the Research list, and after being researched can provide those techs that you want to delay.
For the interrogation to use technicians instead of scientists? THIS IS A VERY INTERESTING IDEA!!!! :D
It will be necessary to try to implement!
By the way, you also resolved the issue of converting Live Aliens to сorpse wihout "slave-trading".

But in this case will be two small inconveniences:
• When will it end "getOneFree"-variants – "the results of the interrogation" would be impossible to research, so they will accumulate in the stores. But it will be almost unnoticeable.
• Added a pretty big list of production, because you have to create a separate production for each race and each rank of Aliens. However, the list can be reduced if, for example, soldiers and the terrorists will interrogate scientists and other – technicians.

4
Hm. So, basically, the parameter "getOneFree" is hard-coded to ignore "dependencies" and "requires."
Not quite so:
• "getOneFree" is hard-coded to ignore "dependencies"
• "requires" is hard-coded to ignore "getOneFree" and "unlocks"
Quote
That's kind of weird.
Just in the original version, such cases were not envisaged, therefore, was not tested in such conditions.

5
So, what is needed is a dummy-tech AFTER the Medic (Medic has no getOneFree) like...
Code: [Select]
- name: STR_AQUATOID_MEDIC
  needItem: true
  unlocks: STR_DUMMY_GETONEFREE
  requires: STR_AQUATOID_SOLDIER

- name: STR_DUMMY_GETONEFREE
  cost: 0
  getOneFree:
    - STR_....(fill in the list)
The Medic should now require the Soldier, and the unlocked dummy-tech should give you one for free...?
(It has to work...somehow... right?)
In this case STR_DUMMY_GETONEFREE will be available for researching right at the beginning of the game.
If add "requires" to STR_DUMMY_GETONEFREE then stops working parameter "getOneFree" :(

6
What happens if you insert a dummy-tech between the Soldier and the Medic?
Something like... (ignore the formating-issues, please)
Code: [Select]
- name: STR_DUMMY_MEDIC
  unlocks:
    - STR_AQUATOID_MEDIC
  requires:
    - STR_AQUATOID_SOLDIER

- name: STR_AQUATOID_MEDIC
  needItem: true
  getOneFree:
    - STR_.......(fill in the list)
  dependencies:
    - STR_DUMMY_MEDIC
Would this have the desired effect of the Medic showing up only after researching the Soldier?
No. If parameter "getOneFree" present in STR_AQUATOID_MEDIC then parameter "dependencies" will be ignored.
So Aquatoid Medic will be available for researching immediately after his arrival in Alien Containment, even if Aquatoid Soldier (and, of course, STR_DUMMY_MEDIC ) is not researched.
IMHO it's wrong, but it works that way.

7
I'm not going to argue about the methods of creating mods.
I'm aware of all of the difficulties expressed by you, but I'll deal with them myself.

We digress from the main question:
How can I implement this block of Research-tree:



knowing about this troubles:
• "dependency" don't working with "getOneFree"
• "requires" triggered ONLY in 0-cost researches
• "getOneFree" don't working with "requires"
?

Is there still any ideas?


8
Other mods that you might use, for instance: they might depend on the vanilla settings for research in order to properly work. Or the developers might release a new nightly with ruleset changes and then you'll need to edit the new ruleset. Or you might change something that will cause the ruleset to crash upon loading, and then you won't be able to start xcom2 at all unless you figure out what the error was.
Your method works for small ruleset edits but it's usually better just to create a separate mod the more you're developing it
With my approach it is much easier to localize errors that occur. No need to guess what is causing the error, this mod or discrepancy of this mod with the master rulesets (like those "old settings").
And when all will work correctly – then it will be possible to do it as a mod.

Jeah in essence it is better to leave the xcom1 / xcom2 ruleset untouched. You can simply copy over the files you wanna modify into a new directory which you create in your "mods" user directory and edit stuff there.
And you can just create a backup and do whatever you want ;)

So don't worry about it.
As he sang once in one of our cartoon cat Leopold: "the Trouble that we will survive:D

9
Which can lead to issues...
What problems this can lead?

10
This is critical to do before changing any existing research entries, otherwise you might still be using some of the old settings
Сurrently I don't do it like a mod.
Сurrently I'm directly editing openxcom\standard\xcom2\research.rul. So I have no "old settings".
And I don't use other mods affecting Research Tree.

11
They are not used in one and the same topic, but functionalwise both listings are linked, especially if you look at the Leader/Commander Rank and what researches they can unlock.
Those "researches they can unlock" do not use 'GetOneFree'.

Quote
Yes indeed, those alien become immediatly avaible, once captured and in alien containment.
Here's the problem.
I need, on the one hand, the research depended on other researches and on the other – used 'GetOneFree'.

Quote
Those are YAML anchors for defining a list of values to be used elsewere. Nothing you need to worry about.
Here a example of using those $any_reference (also called YAML anchors)
Many thanks. Maybe even take advantage of this.

Quote
Let me be brief: ...
That's all – in theory. In practice:
• "getOneFree" negate the effect of "dependency" ("dependency" don't working with "getOneFree") – This is the main problem!
• "requires" triggered ONLY in 0-cost researches
(so I can't use this option) and it negate the effect of "getOneFree" ("getOneFree" don't working with "requires").

So:
Quote
EDIT: I am not sure, but i think alive alien will show up for research even if they have dependencies or require set. Never tested it thou.
Of course, but only those aliens, who have "getOneFree" in their research-topics (Medic, Engeneer/Technician, Squad Leader etc.). Soldiers and terrorists will not appear in the list immediately (after appearance in Alien Containment), if they add "dependencies".
If they add "requires" directly – they will NEVER show up for research (because they are not 0-cost recearch). Those can be done only through the support 0-cost recearch-topic.

Quote
EDIT2: Your Medic has "    needItem: true" set which means you need a alive one to research it.
:) The best way to repair technique is just to turn it "on"  ;D
Of course I have Aquatoid Medics in Alien Containment.

Maybe add:
Code: [Select]
    dependency:
      - STR_AQUATOID_SOLDIER
As far as I could understand – it's all about that "requires" triggered only in 0-cost researches.
So I could not use "requires" with "GetOneFree".

But by itself, this design is quite work:
Code: [Select]
  - name: STR_GAUSS_TECH
    cost: 0
    points: 0
    dependencies:
      - STR_MEDI_KIT
    requires:
      - STR_MEDI_KIT
Gauss Pistol (depended on Gauss Technology) becomes available for research after researching Medi-kit.


12
Correct usage of "dependencies" and "requires":
Listing-1

Correct usage of "dependencies", "requires", "unlock" and "getOneFree"
Listing-2

In your listings I have never found "dependencies" (or "requires") together with "getOneFree".
If I understand correctly, in this listings, Floaters of all ranks can be researched as soon as they appear in Alien Containment. This is not my case.
If I'm wrong – I would be very happy if you describe in more detail how this works.
For exapmple: Which means &MEDIC_GETONEFREE in
Code: [Select]
   getOneFree: &MEDIC_GETONEFREE?
In Ruleset_Reference nothing is written about &any_reference. And in your listings I have not found where cited referenses with &.

13
I would discourage using it since you can get the same effect with 'dependencies' without using 'requires', which is more complicated to use.
Replace 'requires' with 'dependencies'. And you'll need to have a Aquatoid Medic on Alien Containment (since needItem: true) after you research Aquatoid Soldier
The fact of the problem is that when using 'GetOneFree' with 'Dependencies' – parameter 'Dependencies' IS IGNORED! (IMHO it should not be, but so it is)
So, in this case, it will be possible to research Aquatoid Medic without researching Aquatoid Soldier.


14
You either use 'requires' or 'dependencies' - the difference between both is subtle (requires is more restrictive - check the wiki for more details) but they are designed to be used separately.
'Requires' NEVER USED WITHOUT 'dependencies' – you may see it itself in research.rul.

In any case, I tried use 'requires' without 'dependencies':
Code: [Select]
  - name: STR_AQUATOID_SOLDIER
    cost: 192
    points: 50
    lookup: STR_AQUATOID
    needItem: true
    unlocks:
      - STR_ALIEN_ORIGINS
      - STR_AQUATOID_SQUAD_LEADER
      - STR_AQUATOID_MEDIC
      - STR_AQUATOID_TECHNICIAN
      - STR_AQUATOID_NAVIGATOR
    dependencies:
      - STR_AQUATOID_CORPSE
      - STR_MC_READER
  - name: STR_AQUATOID_MEDIC
    cost: 192
    points: 50
    needItem: true
    getOneFree:
      - STR_CALCINITE
      - STR_HALLUCINOID
      - STR_DEEP_ONE
      - STR_XARQUID
      - STR_TENTACULAT
      - STR_BIODRONE
      - STR_TRISCENE
    requires:
      - STR_AQUATOID_SOLDIER
– Aquatoid Medic DOES NOT APPEAR in the research-list after the research Aquatoid Soldier.

15
I has encountered a problem when I tried to change Research Tree like that:


If I try do like this:
Code: [Select]
  - name: STR_AQUATOID_SOLDIER
    cost: 192
    points: 50
    lookup: STR_AQUATOID
    needItem: true
    unlocks:
      - STR_ALIEN_ORIGINS
    dependencies:
      - STR_AQUATOID_CORPSE
      - STR_MC_READER
  - name: STR_AQUATOID_MEDIC
    cost: 192
    points: 50
    needItem: true
    getOneFree:
      - STR_CALCINITE
      - STR_HALLUCINOID
      - STR_DEEP_ONE
      - STR_XARQUID
      - STR_TENTACULAT
      - STR_BIODRONE
      - STR_TRISCENE
    dependencies:
      - STR_AQUATOID_SOLDIER
– Aquatoid Medic appears in Research List when he appears in the Alien Containment (parameter "dependencies" is ignored).

When I try use "requires":
Code: [Select]
  - name: STR_AQUATOID_SOLDIER_DEP
    cost: 0
    dependencies:
      - STR_AQUATOID_CORPSE
      - STR_MC_READER
  - name: STR_AQUATOID_SOLDIER
    cost: 192
    points: 50
    lookup: STR_AQUATOID
    needItem: true
    unlocks:
      - STR_ALIEN_ORIGINS
      - STR_AQUATOID_SQUAD_LEADER
      - STR_AQUATOID_MEDIC
      - STR_AQUATOID_TECHNICIAN
      - STR_AQUATOID_NAVIGATOR
    dependencies:
      - STR_AQUATOID_CORPSE
      - STR_MC_READER
  - name: STR_AQUATOID_MEDIC
    cost: 192
    points: 50
    needItem: true
    getOneFree:
      - STR_CALCINITE
      - STR_HALLUCINOID
      - STR_DEEP_ONE
      - STR_XARQUID
      - STR_TENTACULAT
      - STR_BIODRONE
      - STR_TRISCENE
    dependencies:
      - STR_AQUATOID_SOLDIER
    requires:
      - STR_AQUATOID_SOLDIER_DEP
– Aquatoid Medic do not appears in Research List when researching Aquatoid Soldier was completed.

How can I solve this problem?

Pages: [1] 2